- 现场编程比赛-普及组
普及组T2
- @ 2025-12-22 14:15:23
其实我不是很清楚这题需要题解的意义在哪,毕竟这个题目我是按照入门级难度出的大水题,还有其实你们普及组考完了可以去提高组试试的啦~
这题很明显模拟
Trick:
Just do it
由于数据范围 ,我们完全可以在 的时间内遍历所有的球,不需要任何复杂的优化或数据结构。
我们需要维护两个变量:
cnt:记录完美回击的次数(答案)。s:记录当前的专注度(也是判断条件)。
按照题目描述的逻辑进行单次扫描:
- 碰到简单的球():
cnt加 1,s加 1(状态提升)。 - 碰到难的球():
s减 1(状态下滑)。
Note 注意s不会为0,要特判哦
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, s;
vector<int> a;
signed main() {
ios::sync_with_stdio(0), cin.tie(0);
//freopen("Ryoma.in", "r", stdin);
//freopen("Ryoma.out", "w", stdout);
cin >> n >> s;
a.resize(n);
int cnt = 0;
for (int i = 0; i < n; i++) {
cin >> a[i];
if (s >= a[i]) {
cnt++;
s++;
} else {
s--;
if (s < 0) s = 0;
}
}
cout << cnt << " " << s << endl;
return 0;
}
0 条评论
目前还没有评论...