1. 程式人生 > >查錯神器——對拍

查錯神器——對拍

對拍是個好東西。

對拍是個好東西。

對拍是個好東西。

當你苦苦找題解,卻找不出自己程式碼哪裡錯,而OJ不給資料的時候——

當你靈光一閃,give birth to a new problem 的時候,卻不知自己打的標程是否有誤的時候——

當你比賽時間充裕,擔心自己程式碼有問題的時候——

那就來打對拍吧!!!!

不會打??具體怎麼做??繼續往下看!!!


 

 

首先要普及一下bat(不是BAT Baidu Alibaba Tencent)的知識,因為它是對拍的主要組成部分.

大家用過cmd吧??(Windows + R -> cmd -> Enter)大家先了解下命令提示符的一些命令——

shutdown -p(不解釋   暗笑)

fc 1.txt 2.txt (將1.txt 2.txt 的內容進行比較)

data.exe (呼叫data.exe這個可執行檔案)

> 以及 < (表示檔案傳輸方向,1.exe < input.txt > output.txt 將input.txt的內容輸入到1.exe中,並將結果輸出到output.txt中 )

errorlevel 1 (大家暫時理解為一個bool型別的變數吧)

if (分支語句)

goto (跳轉到某個標記,如下圖,這樣可以實現不斷執行:loop 和 goto loop之間的內容)

pause (暫停)

@echo off (把那些沒用的資訊全部過濾掉)

然後就可以完成一個簡單的對拍啦!!

大家試著理解一下

data.exe裡寫著隨機生成資料的程式碼(下面以對拍 公主的工作 為例,將我的程式碼和Hzwer大佬的題解對拍)要編譯哦(F12)

別忘了打隨機數種子srand(time(0));

注意不用檔案輸出。因為 data.exe > read.txt 已經確定了輸出方向。

再把我的程式碼(左圖)放到1.cpp中,Hzwer大佬的程式碼(右圖)放到2.cpp中(為了能放在圖中,將花括號位置進行了一些處理)

然後編譯(注意要和data.exe放在同一個資料夾),生成兩個exe檔案(1.exe and 2.exe)。

然後新建一個文字文件,將副檔名改為bat,名字隨便取(如dp.bat,lalala.bat,duipai.bat隨便你)

右鍵dp.bat,點編輯

 

再把剛才那串東西輸進去(具體意思不難理解吧??)

然後儲存,點選dp.bat

 

 呀,發現錯誤啦!!!

藍後點擊read.txt,那就是你出錯的樣例。

emmm,OMG!!! ans 沒賦初值!!!!

改為ans(0) 藍後就。。。。。。

 

這就說明你的程式碼基本沒問題了。然後我就AC了QAQ 

還不理解的就把完整的對拍下載下來看看吧         ——>       https://files.cnblogs.com/files/louhancheng/dp.zip