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

    ACM对拍程序过程。。。

    一、用随机程序生成符合题目的输入数据文件名为in.txt

    如何产生随机数:

    http://www.cnblogs.com/lvsi/archive/2011/04/21/2024079.html

    二、用AC的程序和你的程序分别跑数据in.txt

    AC程序生成out1.txt  你的程序生成out2.txt

    在生成输出数据的时候最好把输入的一些关键数据也一并输出,这样避免回头在in.txt中找对应的哪组输入是WA的数据

    三、在两个输出数据的所在目录下新建一个txt  输入

    fc out1.txt out2.txt 

    pause

    另存为.bat的扩展格式。。。 最后运行这个bat文件就OK了。

    fc  是file compare 的缩写,pause 是为了让比较结果停止以便查看。

    fc 只显示每组差异中的第一行和最后一行,而不是显示所有不同的行。

    所以在输出的时候不要输出太多的换行!!!



    ACM windows对拍模板 (详细注释版)


    @echo off
    :ac
    
    e-make>e.in  :出数据
    e-3<e.in>e.out    :被测程序
    e-2<e.in>e.out2   :暴力程序
    fc e.out e.out2
    :diff -q e.out e.out2 这句可以代替上一句
    if errorlevel=1 goto wa     
    echo ac
    goto ac
    
    :wa
    echo wa
    :type e.out e.out2 :这句可有可无
    pause
    
    退出状态
      此命令返回下列退出值:
      0 未找到不同处。
      1 找到不同处。
      >1 发生错误。
    

    ACM linux对拍模板 shell脚本(详细注释版)

    while true; do
    ./make>tmp.in #出数据
    ./tmp<tmp.in>tmp.out #被测程序
    ./tmp2<tmp.in>tmp2.out #正确(暴力)程序
    if diff tmp.out tmp2.out; then #比较两个输出文件
    printf AC #结果相同显示AC
    else
    echo WA #结果不同显示WA,并退出
    #cat tmp.out tmp2.out
    exit 0
    fi #if的结束标志,与C语言相反,0为真
    done # while的结束标志
    
    #BY NICK WONG 2014-08-29
    #在终端下,进入当前目录,输入"sh ./nick.sh",(其中nick.sh为当前shell脚本名) '#'表示单行注释
    #diff在两文件相同时返回空串
    
    



  • 相关阅读:
    第一周任务Largest Submatrix of All 1’s
    第一周 Largest Rectangle in a Histogram
    第二次作业
    B. Light bulbs(2019 ICPC上海站)
    二维平面最近点-分治
    python生成器,推导式
    python函数名的运用,闭包,迭代器
    python函数(二)
    python函数(一)
    python基础(七)
  • 原文地址:https://www.cnblogs.com/lzq1126/p/5596849.html
Copyright © 2011-2022 走看看