最简单易懂的对拍讲解
?
完成對(duì)拍我們需要新建一個(gè)文件夾 里面有這些文件
bf是暴力寫法
gen是隨機(jī)生成數(shù)據(jù)用的
std是理論上的正解
?
對(duì)拍的目的就是
考試時(shí)不確定你的”正解“算法能得多少分
而你能基本確保你的暴力寫法正確的情況下
生成數(shù)據(jù)判斷正確性
?
下面我們以a + bproblem舉例
1.我們的bf.cpp
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 5 int s, a, b; 6 7 int main() { 8 freopen("input.txt", "r", stdin); 9 freopen("bf.out", "w", stdout); 10 11 cin >> a >> b; 12 13 for (int i = 1; i <= a + b; ++i) 14 s++; 15 16 cout << s; 17 return 0; 18 }算是暴力了。。。
?
2.我們的gen.cpp
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int bigrand() { 5 return (rand() * 32768 + rand()); 6 } 7 8 int main() { 9 freopen("input.txt", "w", stdout); 10 11 srand(time(0)); 12 13 cout << bigrand() % 100000 << ' ' << bigrand() % 100000; 14 15 return 0; 16 }?bigrand()函數(shù)可以隨便寫 目的就是使隨機(jī)的數(shù)變大 取模%可以確定范圍
?
3.我們的std.cpp
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int a, b; 5 6 int main() { 7 freopen("input.txt", "r", stdin); 8 freopen("std.out", "w", stdout); 9 10 cin >> a >> b; 11 12 cout << a + b; 13 14 return 0; 15 }目測(cè)是沒錯(cuò)的
?
4.小總結(jié)
是的
這樣
寫三個(gè)cpp文件就足夠了
但是一次次比對(duì).out文件是否太煩了呢
所以我們還要學(xué)會(huì)
?
?
5.test.bat批處理 文件
右鍵找到編輯(win10)
1 :loop 2 gen.exe 3 std.exe 4 bf.exe 5 fc std.out bf.out 6 if not errorlevel 1 goto loop 7 pause加上這段代碼就可以了
:loop是循環(huán)的意思? ? ?
下面三行是分別運(yùn)行三個(gè)程序
fc代表比較 后面就寫已生成的.out文件名
最后 if not errorlevel 1 goto loop?
如果沒有錯(cuò)誤就繼續(xù)循環(huán)
最后一定要寫上pause
注意? ? ? 縮進(jìn)是必須按要求的
?
?
6.現(xiàn)在檢驗(yàn)成果吧
?
如果我的std是對(duì)的那么
根本停不下來
?
如果是錯(cuò)的呢
就會(huì)這樣
?
?
所以學(xué)會(huì)了嗎。。。
轉(zhuǎn)載于:https://www.cnblogs.com/Fo0o0ol/p/11154901.html
總結(jié)
以上是生活随笔為你收集整理的最简单易懂的对拍讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.css常用属性
- 下一篇: 一些关于“数据挖掘介”技术的有用文档