• 【C/C++】对拍教程


    (发现一年没发帖了,趁没课水几个小学期的帖子)

    由于某题莫名卡住,多次debug、试遍乐学的所有用例,依然没有找到自己的算法错误,又莫名其妙地wa,我学习了一下编程竞赛中常用的判断错误方法:对拍。

    对拍,顾名思义,就是对照试验。将相同的数据分别输入到你的程序和“正确的程序”,自动对比在两个程序中产生的输出是否相同。

    其中,数据可以通过编程,利用rand函数,随机生成许多用例,从而涵盖用例的多种情况。

    其中“正确的程序”,在真正的算法竞赛中可以运用暴力算法写出输出没有问题但可能超时的程序,由于本次是线下作业,所以借用了同学已经AC的代码作为参照。

    然后我们来说一下如何对拍:

    你需要四个文件:①WA.cpp,也就是你的程序

                                ②AC.cpp,也就是可以AC的程序

                                ③makeData.cpp,也就是可以输出一组随机用例的程序

                                ④Check.cpp,也就是编译运行可以鉴定两组输出是否相同的程序

    https://blog.csdn.net/Njhemu/article/details/99539576对拍程序可以参考这个链接

    步骤:

    ①    修改Check.cpp,使之满足你的程序和输入输出。

    ②    修改makeData.cpp,在main函数开头插入如下内容:

    ③    修改AC.cpp和WA.cpp,在main函数开头插入如下内容:

    注意其中stdin的文件名要和makeData.cpp的stdout相同

    ④    编译这四个文件,运行Check.exe,结果如下:

     诡异的是,对拍一直no error,OJ却一直过不了啊!(摔)大概是用例生成器生成的数据不全面吧……

  • 相关阅读:
    [Sqlite] 移动嵌入式数据库Sqlite日报SQL操作语句汇总
    Matlab spline
    读书笔记:《重来REWORK》
    读书笔记:《一生的计划》
    6 款好用的 PC+Android 同步 GTD 软件
    第35本:《像外行一样思考,像专家一样实践》
    第34本:《暗时间》
    第33本:《删除:大数据取舍之道》
    第32本:《超级时间整理术----每天多出一小时》
    第31本: 思考的乐趣
  • 原文地址:https://www.cnblogs.com/fighterkaka22/p/13846871.html
Copyright © 2020-2023  润新知