準備
timeb 毫秒級隨機數
struct _timeb T;
_ftime(&T);
srand(T.millitm);
常用資料生成
在資料範圍內生成資料
#define int long long
int random(){
return (unsigned)rand()*(unsigned)rand();
}
int random(int l,int r){
return random()%(r-l+1)+l;
}
檔案
這裡以P1001 A+B Problem
為例。
std.cpp-std.exe(std.lnk)
#include<bits/stdc++.h>
using namespace std;
signed main(){
int x,y;
cin >> x >> y;
cout << x+y << endl;
return 0;
}
force.cpp-force.exe
#include <cstdio>
using namespace std;
int main()
{
int a, b;
scanf("%d%d", &a, &b);
int ans = 0;
int i;
for (i = 1; i <= a; i++)
ans++;
for (i = 1; i <= b; i++)
ans++;
printf("%d\n", ans);
return 0;
}
data.cpp-data.exe
#include<bits/stdc++.h>
int main()
{
struct _timeb T;
_ftime(&T);
srand(T.millitm);
//生成隨機數種子,利用 timeb 生成毫秒級別隨機數
printf("%d %d\n", rand(), rand());
//這樣就生成了2個隨機數
}
Duipai.cpp-Duipai.exe
#include<bits/stdc++.h>
using namespace std;
int main()
{
while (1) //一直迴圈,直到找到不一樣的資料
{
system("data.exe > in.txt");
system("baoli.exe < in.txt > baoli.txt");
system("std.exe < in.txt > std.txt");
if (system("fc std.txt baoli.txt")) //當 fc 返回 1 時,說明這時資料不一樣
break; //不一樣就跳出迴圈
}
return 0;
}