• 「杂项」对拍相关


    对拍在考试时主要干的事就是对比 一定对但是暴力 和 似乎正解但不一定对 的两个程序的输出,来帮助检验自己的程序是否确实没有问题,减少挂分的发生

    一般需要这几个东西:
    image
    不管 .in .out 和程序啥的,需要自己写的是这几个 .cpp 文件
    建议专门开一个文件夹来存,比较方便

    (此处各种命名只是个人习惯)

    • my.cpp 用来存自己需要检验正确性的程序
    • bl.cpp 暴力,需要保证一定对
    • mkd.cpp 随机数据生成器
    • pai.cpp 控制对拍过程

    例:
    noip模拟5 string 一题,可以用 sort 暴力和自己的其他想法对拍
    mkd.cpp:

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    
    inline int rd(int x){ return 1ll*rand()*rand()%x; }
    int n,m;
    
    int main(){//按题意造数据
    	srand(time(NULL));
    	n=10; m=10;
    	cout<<n<<' '<<m<<endl;
    	for(int i=1;i<=n;i++)putchar('a'+rd(26)); puts("");
    	for(int i=1;i<=m;i++){
    		int a=rd(n)+1,b=rd(n)+1;
    		if(a>b)swap(a,b);
    		cout<<a<<' '<<b<<' '<<rd(2)<<endl;
    	}
    	return 0;
    }
    

    pai.cpp:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    
    int main(){
    	system("g++ my.cpp -o my");
    	system("g++ bl.cpp -std=c++11 -O2 -o bl");
    	system("g++ mkd.cpp -o mkd");
    	//编译你的代码
    	int T=0;
    	while(++T){
    		system("./mkd>in.in");
    		system("./my<in.in>my.out");
    		system("./bl<in.in>bl.out");
    		//运行
    		// "<in.in" 为从 in.in 读入
    		// ">my.out" 为输出到 my.out
    		if(system("diff my.out bl.out")){//判断是否正确
    			puts("QAQ"); break;
    		}
    		else printf("OK %d
    ",T);
    	}
    	return 0;
    }
    

    基本就是这样,平时也可以刷题时不时拍拍,练下造数据啥的qwq

  • 相关阅读:
    FreeCodeCamp( FCC)前端工程师 基础算法练习 分析与解答
    关于AuthorizeAttribute使用
    互联网菜鸟历险记之一
    FreeMarker与Spring MVC的结合应用
    SpringMVC上传文件
    桥接模式
    在Openfire中使用自己的数据表之修改系统属性
    在Openfire中使用自己的数据表之修改配置文件
    SpringMVC中使用DWR
    基于注解的DWR使用
  • 原文地址:https://www.cnblogs.com/zzzuozhe-gjy/p/14866344.html
Copyright © 2020-2023  润新知