ACM 模式 C++、Java、Python 数据输入 & 输出
ACM 模式一般只需要从标准输入读取数据,计算后输出到标准输出。提交时不要读写本地文件,不要打印提示语。
常见输入格式¶
假设题目输入如下:
表示先输入整数 n,再输入 n 个整数。
| C++ | |
|---|---|
多组测试¶
输入第一行给出测试组数 T:
读到 EOF¶
题目没有给数据组数时,经常需要一直读到输入结束。
FastScanner 可以补一个 hasNext(),也可以用 BufferedReader 按行读取:
读取整行字符串¶
如果字符串包含空格,不能用按空白分割的 cin >> s、next() 或 split() 直接读完整内容。
二维数组 / 矩阵¶
输入 n m 后读取 n 行、每行 m 个整数。
输出注意点¶
- 一般使用
\n换行,不要在大量输出里频繁刷新。 - 多个答案建议先拼到缓冲区,再一次性输出。
- 不要输出题目没有要求的提示文字,例如
请输入 n:。 - C++ 打开
ios::sync_with_stdio(false); cin.tie(nullptr);后,不要混用scanf/printf。 - Java 算法题优先用
BufferedReader + StringTokenizer或自写快读,数据量很小时才用Scanner。 - Python 数据量大时优先用
sys.stdin.buffer.read(),大量输出用sys.stdout.write()。