首页 > 其他分享 >对拍

对拍

时间:2022-11-10 21:14:35浏览次数:33  
标签: std rand int long include out

对拍

2022.11.10

背景

CSP复赛前一个晚上才匆匆看了一眼对拍,直到现在才看到还搁在这,赶紧补救一下……

对拍程序

#include<bits/stdc++.h>
#include<windows.h>
#include<ctime>
using namespace std;
int n=10,i,ans;
double s,t,d;
int main()
{
    while(1)
    {
        ans=0;//记录答案正确的测试点的个数
        for(int i=1;i<=n;i++)//n个测试点一组
        {
            system("data.exe > data.out");//将生成的数据放到data.out里
            system("std.exe < data.out > std.out");//将生成的数据输到暴力中,并将结果放到std.out中
            s=clock();//记录开始运行正解的时间点
            system("ab.exe < data.out > ab.out");//将生成的数据输到正解中,并将结果放到ab.out中
            t=clock();//记录正解运行结束的时间点
            d=t-s;//相减得到正解运行的总时间(有可能会不准)
            if(system("fc std.out ab.out"))//比较ab.out与std.out
            {
                printf("测试点#%d WA\n",i);//答案错误
            }
            else
            {
                if(d>1000)
                {
                    printf("测试点#%d TLE,%.0lf\n",i,d);//答案正确但时间超限
                }
                else
                {
                    printf("测试点#%d AC\n",i);//答案正确
                    ans++;//答案正确的测试点数量+1
                }
            }
            Sleep(1000);//休息一秒,节约次数(不然有可能随机的数据还没有变,两次用的是同样的数据)
        }
        printf("得分%d",ans/n);//计算分数
    }
    return 0;
}

正解

#include<bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
	cin>>a>>b;
	cout<<a+b;	
	return 0;
} 

暴力

#include<bits/stdc++.h>
using namespace std;
long long a,b,ans;
int main()
{
	cin>>a>>b;
	for(int i=1;i<=a;i++)
	{
		ans++;
	}
	for(int j=1;j<=b;j++)
	{
		ans++;
	}
	cout<<ans;
	return 0;
}

数据

#include<bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
	srand(time(0));//设置种子
	a=rand()*rand()*rand()%1000000000*rand();//随机数据
	b=rand()*rand()*rand()%1000000000*rand();//随机数据
	cout<<a<<' '<<b;//输出
}

备注

这是就老师讲解的Manacher思路写的
有问题请在评论区提出,但请温柔点,谢谢!
请勿复制代码,不喜勿喷
转载请注明出处(但我知道我写得很烂,不会有人想转载的,对吧?)
本兔子萌新,请多指教~

标签:,std,rand,int,long,include,out
From: https://www.cnblogs.com/tu4zi3wo1/p/16837266.html

相关文章