zoukankan      html  css  js  c++  java
  • 对拍

    对拍

    这不是个算法,这是个方法。每当你刷毒瘤题的时候,你WA了一天,实在找不出一个能卡死自己代码的数据,这时候,你就需要对拍。

    对拍需要的东西(所有程序不需要文件输入输出):

    1.你的程序(就是你的错误程序)
    QQ图片20200213201200.png

    2.正确程序(题解中的标答 或 会TLE的正确暴力代码)
    QQ图片20200213201222.png

    3.数据程序(能随机生成输入数据的程序,刚开始先把数据搞小一些,如果拍不出错就调大数据)
    QQ图片20200213201252.png

    4.对拍程序(能组织一切的领导者程序):
    程序中的文件名根据你的程序的名字而定。
    一个对拍程序一次能多次执行对拍,最多只能发现一个能卡死你的程序的数据
    1Okze1.png

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        while(1+1==2){ //只要不发现你的代码错误就一直找
            system("data.exe>data.txt"); 
            //运行data.cpp,把输出放到data.txt文本文档中
            system("3311biaoda.exe<data.txt>3311biaoda.txt");
            //运行正确程序3311biaoda.cpp,输入data.txt文本文档中的输入数据,把输出放到3311biaoda.txt文本文档中
            system("3311.exe<data.txt>3311.txt");
            //运行你的程序3311.cpp,输入data.txt文本文档中的输入数据,把输出放到3311.txt文本文档中
            if(system("fc 3311.txt 3311biaoda.txt")){
            //对比两个文本文档,如果不一样返回true
                puts("WA"); //发现你的代码错误
                break;
            } else puts("AC");//这个数据通过
        }
        return 0;
    }
    

    都写好后,把这些程序都放到一个文件夹中。再依次点开文件夹中的程序(如果你直接执行你写的程序会找不到文件)。 然后你运行 ( exttt{duipai.cpp}),会这样:

    1O9BSs.png
    然后你等待一个 ( exttt{WA}) 出来,如果你的数据过小,可能要等几个小时;如果你的过大,可能虽然找到了你的程序过不了的数据,你也看不出为什么错了。

    ( exttt{WA}) 长这个样:

    1OFZ1H.png
    这时候,你打开文件夹(就是你把程序都放哪儿的那个文件夹),它会变成这个样:
    QQ图片20200213202416.png
    然后你打开 ( exttt{data.txt}),就是你的程序过不了的数据。比如会长下面这个样(随你的题目而变):

    1OV0sJ.png
    然后一次对拍就结束了。如果你觉得这个样例不合适或者这个样例你已经能过了,你就再执行一次 ( exttt{duipai.cpp}),再等一个 ( exttt{WA}),然后再打开一次 ( exttt{data.txt})

    祝大家学习愉快!

  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/George1123/p/12493431.html
Copyright © 2011-2022 走看看