ACM 模式刷题指南
ACM 模式要求程序从标准输入读取数据,并将答案写到标准输出。与只填写函数的模式相比,你需要自己处理输入、调用算法并输出结果。
一题的完整流程
- 先看清输入有几行、每行是什么数据,确认数组长度和边界条件。
- 把计算逻辑与输入输出分开:先写核心函数,再在主函数中读入、调用和打印。
- 用题目样例运行程序,再自己添加空边界、重复值和极值用例。
- 提交后根据判题结果检查协议、复杂度与边界,不只看算法思路是否正确。
标准输入输出示例
假设第一行是整数 n,第二行是 n 个整数,要求输出它们的和。C++ 程序可以这样组织:
#include <bits/stdc++.h>
using namespace std;
long long sumArray(const vector<int>& nums) {
long long sum = 0;
for (int value : nums) sum += value;
return sum;
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int& value : nums) cin >> value;
cout << sumArray(nums) << '\n';
}读入方式必须以每道题自己的输入描述为准。运行结果只输出题目要求的答案,不要额外打印提示语。
按知识点练习
初学者可以从哈希、双指针和数组开始,再练习滑动窗口、二叉树、图论与动态规划。HOT 100 题单按这些知识点组织,支持逐题练习。