首先要写三个程序 + 一个对拍程序(模板)
随机产生测试数据的程序随机产生测试数据的程序
rand.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
srand(time(0));
freopen("data.in", "w", stdout);
n = 1 + rand() % 10000;
cout << n << endl;
return 0;
}
暴力程序(这是你的第一思路、一般是超时的程序)
std.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("data.in", "r", stdin);
freopen("std.out", "w", stdout);
int i, n;
long long sum = 0;
cin >> n;
for(int i=1; i<=n; i++){
sum += i;
}
cout << sum << endl;
return 0;
}
你的算法,保存成
my.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("data.in", "r", stdin);
freopen("my.out", "w", stdout);
int n;
long long sum = 0;
cin >> n;
sum = n*(n+1)/2;
cout << sum << endl;
return 0;
}
对拍程序(模板,要记住!!!)
对拍.bat
@echo off
:loop
rand.exe
std.exe
my.exe
fc my.out std.out
if not errorlevel 1 goto loop
pause
go to loop
目标分布
三个 .exe 和 .bat 都放在同一个目录
单个数据对比
第一步打开cmd窗口
fc my.out std.out
效果如图:
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com