重修 对拍

对拍,考场干货

Link

Arunner.cpp

#include<bits/stdc++.h>
using namespace std;
long long tmp,cnt=0,t1=0,t2=0,lim;
inline void start(){tmp=clock();}
inline long long end(){return clock()-tmp;}
signed main(){
cout<<"Input times(-1 for infinity):"<<endl;
cin>>lim;
while(cnt!=lim){
system("Amake.exe > Adata.txt");
start();
system("1.exe < Adata.txt > A1.txt");
t1+=end();
start();
system("2.exe < Adata.txt > A2.txt");
t2+=end();
cnt++;
if(system("fc A1.txt A2.txt")){
cout<<"There's something wrong."<<endl;
system("pause");
return 0;
}
}
cout<<cnt<<" times running."<<endl;
cout<<"Avg time of 1: "<<fixed<<setprecision(3)<<0.001*t1/cnt<<endl;
cout<<"Avg time of 2: "<<fixed<<setprecision(3)<<0.001*t2/cnt<<endl;
system("pause");
return 0;
}

Amake.cpp

写随机数据的地方,不用 freopen。

缺省源:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define fir first
#define sec second
#define mkp make_pair
#define pb emplace_back
#define mem(x,y) memset(x,y,sizeof(x))
#define For(i,j,k) for(int i=j;i<=k;i++)
#define Rof(i,j,k) for(int i=j;i>=k;i--)
#define ckmx(a,b) a=max(a,b)
#define ckmn(a,b) a=min(a,b)
#define uid(i,j,k) uniform_int_distribution<ll> i(j,k)
#define Rand(s) s(rand_num)
unsigned seed=chrono::system_clock::now().time_since_epoch().count();
mt19937 rand_num(seed);
signed main(){IOS;
return 0;}

1.cpp & 2.cpp

两个比较程序,不用写 freopen。

注意每次对拍前要编译,否则 .exe 文件没被修改。

posted @   ShaoJia  阅读(38)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示