AtCoder ABC424 解题报告
2 分钟阅读
AtCoder ABC424 解题报告
这篇文章位于 content/blog/atcoder/ 子目录,用于演示博客详情页对子目录 slug 的支持(URL 为 /blog/atcoder/abc424)。
A 题:签到
题意:读入一个整数并原样输出。注意用 long long 防止溢出:
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
cout << n << '\n';
return 0;
}
B 题:模拟
直接按题意模拟,复杂度 O(N):
for (int i = 0; i < n; i++) {
if (check(i)) ans++;
}
C 题:前缀和优化
暴力会超时,用前缀和把区间查询降到 O(1):
vector<long long> pref(n + 1, 0);
for (int i = 0; i < n; i++) pref[i + 1] = pref[i] + a[i];
// 查询 [l, r]
long long sum = pref[r + 1] - pref[l];
小结
ABC 的难度梯度非常适合练手:A/B 保稳、C/D 练思维、E 之后挑战自我。保持每周一场,进步看得见。