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

3 篇文章 0 订阅

杂言

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


前言(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.cpp
g++ -g -o %1 %1.cpp
g++ -g -o %1r %1r.cpp
:AC
%1m
%1
%1r
fc %1.out %1r.out  
if errorlevel=1 goto WA
echo AC  
goto AC    
:WA  
echo WA
pause

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 off
g++ -g -o %1 %1.cpp
if "%2"=="" goto loop
copy %1%2.in %1.in >nul
echo Problem Test
echo Data %1
type nul > enter
time<enter
%1.exe
time<enter
fc %1.out %1%2.out
del %1.in
del %1.out
del enter
del %1.exe
pause
goto end
:loop
for %%i in (0 1 2 3 4 5 6 7 8 9 10) do call %0 %1 %%i
:end

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值