当前位置: 首页 > news >正文

CCPC chongqing 2025 L

题目链接:https://codeforces.com/gym/105887
题目背景:

       对一个栈执行以下 n 次操作:

  • Push 𝑥:把 𝑥 压入栈中。 
  • Pop:把栈顶弹出,不会对空栈执行这个操作。 
  • Repeat:重复之前的所有操作。

        每次操作输出栈元素总和。

思路:

       模拟题。对于Repeat操作只需复制当前栈道栈顶即可,执行多次Repeat操作可能使栈的空间特别大,但是可以发现当栈大小大于等于 n 时,如何 pop 都不会使栈空,所有在栈大小大于等于 n 时,只需sum * 2即可。

数据范围:

        1 <= n <= 2e5。

ac代码:
#include <bits/stdc++.h>#define ioscc ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define endl '\n'
#define me(a, x) memset(a, x, sizeof a)
#define all(a) a.begin(), a.end()
#define sz(a) ((int)(a).size())
#define pb(a) push_back(a)
using namespace std;typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<vector<int>> vvi;
typedef vector<int> vi;
typedef vector<bool> vb;const int dx[4] = {-1, 0, 1, 0};
const int dy[4] = {0, 1, 0, -1};
const int MAX = (1ll << 31) - 1;
const int MIN = 1 << 31;
const int MOD = 998244353;
const int N = 1e5 + 10;template <class T>
ostream &operator<<(ostream &os, const vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cout << a[i] << ' ';return os;
}template <class T>
istream &operator>>(istream &in, vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cin >> a[i];return in;
}/* ----------------- 有乘就强转,前缀和开ll ----------------- */void solve()
{int n;cin >> n;vector<ll> v;ll sum = 0;while (n--){string op;cin >> op;if (op == "Push"){int x;cin >> x;v.push_back(x);sum = (sum + x) % MOD;}else if (op == "Pop"){sum = (sum - v.back() + MOD) % MOD;v.pop_back();}else{int len = sz(v);if (len < n){for (int i = 0; i < len; ++i)v.pb(v[i]);}sum = sum * 2 % MOD;}cout << sum << endl;}
}int main()
{ioscc;solve();return 0;
}

http://www.lqws.cn/news/212779.html

相关文章:

  • Faiss向量数据库全面解析:从原理到实战
  • 5.4.2 Spring Boot整合Redis
  • 汇编语言学习(三)——DoxBox中debug的使用
  • 从代码学习深度强化学习 - 初探强化学习 PyTorch版
  • [学习] GNSS信号跟踪环路原理、设计与仿真(仿真代码)
  • RTOS学习之重难点
  • 关于GitHub action云编译openwrt
  • 应急响应思路
  • 大故障,阿里云核心域名疑似被劫持
  • vue3+dify从零手撸AI对话系统
  • python asyncio的作用
  • golang项目中如何使用私密仓库的扩展包
  • 大模型在创伤性脑出血全周期预测与诊疗方案中的应用研究
  • JDK21深度解密 Day 15:JDK21实战最佳实践总结
  • Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程
  • ELF文件,静态链接(Linux)
  • 开疆智能Ethernet/IP转Modbus网关连接质量流量计配置案例
  • Redis 实现分布式锁:深入剖析与最佳实践(含Java实现)
  • 深度解析:Spring Boot 配置加载顺序、优先级与 bootstrap 上下文
  • 《JavaAI:稳定、高效、跨平台的AI编程工具优势解析》
  • RD-Agent-Quant:一个以数据为中心的因素与模型联合优化的多智能体框架
  • 408第一季 - 数据结构 - 字符串和KMP算法
  • 【Zephyr 系列 13】BLE Mesh 入门实战:构建基础节点通信与中继组播系统
  • 【C++】类型转换
  • 死锁的四个必要条件
  • HTML面试整理
  • 在Mathematica中使用Newton-Raphson迭代绘制一个花脸
  • 【判断既约分数】2022-4-3
  • Python60日基础学习打卡Day46
  • 杭州瑞盟 MS35774/MS35774A 低噪声256细分微步进电机驱动,用于空调风门电机驱动,香薰电机驱动