【OI】 自动对拍与已有数据自评测

来源:互联网 发布:美业邦软件的弊端 编辑:程序博客网 时间:2024/05/01 08:10

杂言

最近博客顺序这么乱,现在才写个关于对拍的博客…
但我确实希望展示我认为很方便的代码
就当我是来水博客的吧


前言(dalao自动跳过)

都是windows下需要注意的,毕竟只了解一点点.bat,.sh还没看过
windows下本文bat文件使用姿势都大体是形如ck.bat prz
ck随便改,prz为程序名自行调整
注意开好文件(这我没办法自动化),剩下应该都自动化了
推荐使用顺序是在操作目录下Shift+右键选择 在此处打开命令窗口 ,这样来完成一系列操作当然是最方便的
根据需求自己微调一下bat


对拍

Windows下

大体框架来自这里
要看注释可以去那不过我觉得我优化的地方已经很多了
m代表make,r代表right,什么都没有就是需要对拍的啦(好废话…)
放在目录里的文件形如 przm.cpp przr.cpp prz.cpp
要是错了应该就直接gdb了,就没写del
记得开文件

@echo off  g++ -g -o %1m %1m.cppg++ -g -o %1 %1.cppg++ -g -o %1r %1r.cpp:AC%1m%1%1rfc %1.out %1r.out  if errorlevel=1 goto WAecho AC  goto AC    :WA  echo WApause

Linux下

暂时全部来自这里…
鸣谢原作,如果不行的话通知我我会立刻删除…

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在两文件相同时返回空串  

已有数据自评测

目前仅有windows下
好的我承认结构都是《数学一本通》-林厚从 的数据包里的.bat里来的,加上了自己的一些优化
放到数据包里,在数据包里的目录开命令行好废话…
记得开文件

@echo offg++ -g -o %1 %1.cppif "%2"=="" goto loopcopy %1%2.in %1.in >nulecho Problem Testecho Data %1type nul > entertime<enter%1.exetime<enterfc %1.out %1%2.outdel %1.indel %1.outdel enterdel %1.exepausegoto end:loopfor %%i in (0 1 2 3 4 5 6 7 8 9 10) do call %0 %1 %%i:end
原创粉丝点击