C++ 对拍

准备

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;
}

posted @ 2024-06-08 22:39  辜铜星  阅读(48)  评论(0编辑  收藏  举报