zoukankan      html  css  js  c++  java
  • 对拍程序

    在比赛中,可以写两个程序,一个是保证答案正确的暴力程序,另一个则是要提交的答案程序,
    为了检验答案程序的正确性,可以生成随机数据,分别在两个程序上测试,检查输出答案是否一致
    注:生成随机数据的程序要根据题目给出的数据格式,具体问题具体分析,这里只给出一个示例

    #include<cstdio>
    #include<cstdlib>
    #include<ctime>
    #include<algorithm>
    typedef long long ll;
    int n = 1000, m = 1000,k = 1000;
    int main()
    {
    	printf("%d %d %d", n, m,k);
    	for(int i = 1; i <= k; ++i)
    	{
    		int cho = rand()%1;
    		char ch = (cho == 0?'R':'S');
    		int x = rand()%(std::min(n, m)-1)+1;
    		ll k = rand();
    		printf("%c %d %lld
    ", ch, x, k);
    	}
    	return 0;
    }
    

    接下来是对拍程序,用来比较两个程序的输出答案是否一致,其中data.cpp是随机数据生成器

    
    #include<cstdio>
    #include<cstdlib>
    int main()
    {
    	system("g++ dp1.cpp -o a ");
    	system("g++ dp2.cpp -o b ");
    	system("g++ data.cpp -o data ");
    	int cntcr = 0, cntwr = 0;
    	while(1)
    	{
    		system("./data >data.in");
    		system("./a <data.in >1.out");
    		system("./b <data.in >2.out");
    
    		if(system("diff 1.out 2.out > /dev/null"))
    		{
    			printf("%d Wrong Answer
    ",++cntwr);
    		}else
    		{
    			printf("%d Accepted
    ", ++cntcr);
    		}
    	}
    	return 0;
    
    
    }
    
    
  • 相关阅读:
    CSS3新增文本属性
    CSS选择器
    【转】Java基础——面试题汇总
    【转】equals和==的区别
    【转】JRE和JDK的区别
    【转】深度学习常用的模型评估指标
    【转】使用Scanner输入字符串时next()和nextLine()区别
    JAVA操作ORACLE大对象
    ORACLE大对象存储
    iis是什么东西?
  • 原文地址:https://www.cnblogs.com/cdsidi/p/13425533.html
Copyright © 2011-2022 走看看