论如何对拍
1 用途(需求)
赛场或平时验证某一程序的正确性。
2 基本要求
- 不需要写文操!!!
- 必须能够确保能够写出一个输出正确答案的
std.exe
程序(不要求时间)。 - 适用于算法优化暴力复杂度或验证
dp
正确性。 - 不适用于模拟题。
- 读入不宜过于复杂。
- 本博客中所有程序要求处于同一文件夹。
3 基本实现
3.1 写出std.exe文件
这个我不会教,也教不了、、
注意事项:
- 确保正确性!!!
- 不需考虑时间复杂度。
3.2 制造定数量级的随机数
3.2.1 手造随机数前置基础
首先须知rand()
函数。
最重要的一点: r a n d ( ) ∈ [ 1 , 32767 ] rand()\in[1,32767] rand()∈[1,32767]。
因此,当我们想要造 1 0 9 10^9 109甚至 1 0 18 10^{18} 1018级别的随机数时,需手写 r a n d ( ) rand() rand()函数。
3.2.2 学会手造 1 0 9 10^9 109数量级的随机数
随机数范围 [ a , b ] [a,b] [a,b]
#define int long long
int rand9(int a, int b) {
int res = 0;
int t = rand();//最大只能至32767
for (int i = 1; i <= t; ++i)
res = (res + rand()) % (b - a + 1) + a;
return res;
}
各位可以在本地跑一下。
(是不是发现它只输出一个定值)
但是如果在主函数加一个srand(time(0))
呢?
#include <bits/stdc++.h>