zoukankan      html  css  js  c++  java
  • 对拍

    前言

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

    步骤

    如何对拍?

    前置:此程序为在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 \ $文件里的数据就是错误数据

  • 相关阅读:
    利用systemtap学习Linux路由代码
    系统调试技巧
    linux调度器系列
    systemTAP 学习
    使用systemtap调试linux内核
    二叉树的可视化---数据结构
    linux进程调度之 FIFO 和 RR 调度策略---SYSTEMTAP
    python-gdb
    中国科技大学编绎原理视频 公开课网站
    java EE 学习
  • 原文地址:https://www.cnblogs.com/chloristendika/p/9905189.html
Copyright © 2011-2022 走看看