1. 杭电OJ基础输入输出题解(1090-1096)
作为算法竞赛入门的第一道门槛,杭电OJ的1000系列题目是每个ACMer的必经之路。这些看似简单的A+B问题,实则暗藏玄机。本文将结合我个人刷题经验,详细解析1090-1096这7道基础题目的解题思路和常见陷阱。
特别提醒:杭电OJ的输入输出格式要求极为严格,一个多余的空格或换行都可能导致WA(Wrong Answer)。建议先仔细阅读题目说明,再参考本文的代码实现。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目分类与解题框架
2.1 输入模式分类
杭电OJ的输入输出题主要分为三种模式:
-
固定次数循环(如1090、1093、1096)
- 先读取测试用例数量N
- 然后进行N次计算
- 适用于明确给出测试组数的题目
-
不定次数直到特定条件(如1091、1092)
- 以特定输入(如0 0)作为终止条件
- 需要while循环配合条件判断
- 常见于未明确测试组数的场景
-
持续读取直到EOF(如1094、1095)
- 需要处理文件结束符
- 使用while(cin>>a)等写法
- 常见于大规模数据输入
2.2 通用解题框架
所有A+B类题目都可套用以下框架:
cpp复制#include <iostream>
using namespace std;
int main() {
// 输入优化(大数据量时必备)
ios::sync_with_stdio(false);
cin.tie(nullptr);
// 解题代码主体
// ...
return 0;
}
3. 各题详细解析
3.1 1090题 - 固定次数的A+B
题目特点:
- 首行给出测试用例数量N
- 后续N行每行两个整数
- 输出N行结果
易错点:
- 忘记读取N的值直接进入循环
- 输出缺少换行符
- 使用scanf时格式字符串错误
优化代码:
cpp复制#include <iostream>
using namespace std;
int main() {
ios::sync_with_s
