@exut
2024-10-23T18:41:21.000000Z
字数 637
阅读 99
赛场技巧
这个众所周知国内的比赛都是OI赛制,非常惨没有评测机
那怎么办,我总得知道我对不对吧
我可以手玩!
wok你能手玩多大, 吗
于是有了一个选手必备的小技巧,对拍
我们首先需要准备三个程序,待检验代码,暴力代码(正确性保证的),数据生成器
然后我们来写一个checker
#include<bits/stdc++.h>using namespace std;int t;int main(){while(1){cout<<"#test"<<" "<<(++t)<<":";system("./data > data.in");system("./std < data.in > std.out");system("./BF < data.in > BF.out");if(system("diff std.out BF.out > error.log")){cout<<"AC\n";}else{cout<<"WA\n";break;}}}
其中这三个文件都不需要开文件读入输出,各自编译好之后直接运行checker就可以了
其中 "</>" 的用处就是重定向,让你的代码从指定位置输入输出
对拍无误就会一直运行,Ctrl+Z可以强制从终端退出
当发生错误时,会输出 WA,并把这一组数据保留并在error.log里面输出各自的输出
然后需要注意的是开了重定向就不必须开freopen 了,重定向就有freopen的作用会让你的输出到文件里去
另外,如果只是需要跟大样例比较,也可以直接freopen+diff命令,更方便其实
