• 对拍


    前言

    与其去写一个不确定的正解,不如老老实实回来对拍,
    $ \ \ \ \ $对拍可能拯救你的一个会做但是由于小错误爆零的程序

    步骤

    如何对拍?

    前置:此程序为在win系统环境下的对拍

    $ 1. $准备一个你写的可能是正解但不确定的程序和一个暴力程序(暴力程序需要保证是正确的)

    $ 2. 设我们要对拍的程序为 Orz.cpp ,正确的程序为 Orz2.cpp $

    $我们要写一个随机生成数据的程序 RandData.cpp $

    $将这三个文件放在一个文件夹 Pai 里面,运行,得到三个 exe $可执行文件

    $ 3. 写一个对拍程序 Pai.cpp $,程序实现如下:

    #include <bits/stdc++.h>
    #include <windows.h>
    using namespace std;
    const int Try_Times = 1000;
    int cnt = 1, t1, t2;
    
    int main(void) {
    	while(cnt != Try_Times) {
    		system("RandData.exe > try.in");
    		t1 = clock();
    		system("Orz.exe < try.in > try1.out");
    		t2 = clock();
    		system("Orz2.exe < try.in > try2.out");
    		if(system("fc try1.out try2.out > nul")) {
    			printf("On test #%d: Wrong answer , time: %d ms\n", cnt, t2 - t1);
    			break;
    		} else {
    			printf("On test #%d: AC , time: %d ms\n", cnt, t2 - t1);
    		}
    		cnt++;
    	}
    	system("pause > nul");
    	return 0;
    }
    

    $ \ 4. \ 实现原理:随机生成一组数据 \ try.in \ ,程序 \ A.cpp \ 得到结果 \ try1.out \ ,程序 \ B.cpp \ 得到结果 \ try2.out \ ,
    比较 \ try1.out \ 和 \ try2.out \ 结果是否相同,
    如果相同,测试下一组随机数据,否则跳出,此时的 \ try.in \ $文件里的数据就是错误数据

  • 相关阅读:
    并发编程——IO模型(重点)
    03-使用 HashMap 还是 TreeMap?
    02-Spring框架中Bean的生命周期
    01-Spring,SpringMVC,SpringBoot,SpringCloud的区别和联系
    MongoDB教程17-MongoDB聚合
    MongoDB教程16-MongoDB索引
    MongoDB教程15-MongoDB $type 操作符
    MongoDB教程14-MongoDB查询文档
    MongoDB教程13-MongoDB删除文档
    MongoDB教程12-MongoDB更新文档
  • 原文地址:https://www.cnblogs.com/chloristendika/p/9905189.html
Copyright © 2020-2023  润新知