博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最简单易懂的对拍讲解
阅读量:5279 次
发布时间:2019-06-14

本文共 1519 字,大约阅读时间需要 5 分钟。

 

完成对拍我们需要新建一个文件夹 里面有这些文件

bf是暴力写法

gen是随机生成数据用的

std是理论上的正解

 

对拍的目的就是

考试时不确定你的”正解“算法能得多少分

而你能基本确保你的暴力写法正确的情况下

生成数据判断正确性

 

下面我们以a + bproblem举例

1.我们的bf.cpp

1 #include 
2 using namespace std; 3 typedef long long ll; 4 5 int s, a, b; 6 7 int main() { 8 freopen("input.txt", "r", stdin); 9 freopen("bf.out", "w", stdout);10 11 cin >> a >> b;12 13 for (int i = 1; i <= a + b; ++i) 14 s++;15 16 cout << s;17 return 0;18 }

算是暴力了。。。

 

2.我们的gen.cpp

1 #include 
2 using namespace std; 3 4 int bigrand() { 5 return (rand() * 32768 + rand()); 6 } 7 8 int main() { 9 freopen("input.txt", "w", stdout);10 11 srand(time(0));12 13 cout << bigrand() % 100000 << ' ' << bigrand() % 100000;14 15 return 0;16 }

 bigrand()函数可以随便写 目的就是使随机的数变大 取模%可以确定范围

 

3.我们的std.cpp

1 #include 
2 using namespace std; 3 4 int a, b; 5 6 int main() { 7 freopen("input.txt", "r", stdin); 8 freopen("std.out", "w", stdout); 9 10 cin >> a >> b;11 12 cout << a + b;13 14 return 0;15 }

目测是没错的

 

4.小总结

是的

这样

写三个cpp文件就足够了

但是一次次比对.out文件是否太烦了呢

所以我们还要学会

 

 

5.test.bat批处理 文件

右键找到编辑(win10)

1 :loop2    gen.exe3    std.exe4    bf.exe5    fc std.out bf.out6 if not errorlevel 1 goto loop7 pause

加上这段代码就可以了

:loop是循环的意思     

下面三行是分别运行三个程序

fc代表比较 后面就写已生成的.out文件名

最后 if not errorlevel 1 goto loop 

如果没有错误就继续循环

最后一定要写上pause

注意      缩进是必须按要求的

 

 

6.现在检验成果吧

 

如果我的std是对的那么

根本停不下来

 

如果是错的呢

就会这样

 

 

所以学会了吗。。。

转载于:https://www.cnblogs.com/Fo0o0ol/p/11154901.html

你可能感兴趣的文章
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
电子眼抓拍大解密
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
国外常见互联网盈利创新模式
查看>>
android:scaleType属性
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Linux中防火墙centos
查看>>
centos下同时启动多个tomcat
查看>>
[JS]递归对象或数组
查看>>