额,第一次做OJ感受到了深深的恶意,以为和leetcode一样不用管输入输出,没想到还要自己对输入输出进行处理。
白瞎了早上五点起来做笔试,在本地ide调好了发现ace不了可太蛋疼了。长个教训,做个总结吧。
1 用Python处理:
OJ一般是由输入输出两个文件的。这里会直接将所有的case读进来,比如第一行第二行是第一种case,那么第三行第四行就是第二个case,以此类推。
在本地调试的时候,Juypter notebook中需要用StringIO进行输入,不然无法手动输入。
输入都是字符串,需要进行类型转换。
from io import StringIO
import sys
doc = '''3
1 2 3
4 5 6
7 8 9
'''
sys.stdin = StringIO(doc)
for line in sys.stdin:
a = line.split()
print(a)
输出的时候也需要注意空格和换行符,有时候和输出文件匹配过于严格,导致一个空格使得无法通过。
2 C++处理
处理大批量数据的时候,scanf比起cin快得多
计算a+b
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输入:
2
1 5
10 20
输出:
6
30
#include<iostream>
using namespace std;
int main(){
int t;
cin>>t;
for(i