社区讨论

造数据的烦恼

灌水区参与者 3已保存回复 16

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
16 条
当前快照
1 份
快照标识符
@lzhu8x40
此快照首次捕获于
2024/08/06 11:05
2 年前
此快照最后确认于
2024/08/06 11:58
2 年前
查看原帖
为什么(见以下代码)?
按需查看:题目传送门
  1. 题目标准程序
CPP
#include<bits/stdc++.h>
using namespace std;
bool k[10000001];
int main() {
	int n,m;
	cin>>n;
	fill(k+1,k+1+n,0);
	for(int i=1;i<=n;i++) {
		int t;
		scanf("%d",&t);
		k[i]=t;
	}
	cin>>m;
	for(int i=1;i<=m;i++) {
		int t;
		scanf("%d",&t);
		k[t]=!k[t];
	}
	for(int i=1;i<=n;i++) printf("%d ",k[i]);
	return 0;
}
  1. 造输入数据代码
CPP
#include<bits/stdc++.h>
using namespace std;
const string low="abcdefghijkimnopqrstuvwxyz",upp="ABCDEFGHIJKLMNOPQRSTUVWXYZ",num="0123456789";

int rad_int(int min,int max){//生成一个随机数(max-min<=1073676289) 
	return min+(rand()*rand())%(max-min+1);
}
char rad_char(string rec){//从rec中随机取一个字符 
	int lr=rec.length(),k=rad_int(0,lr-1);
	return rec[k];
}
void start(int i){//预处理 	
	const string t1="data\\",t2=to_string(i),t3=".in";
	const string s=t1+t2+t3;
  	freopen(s.c_str(),"w",stdout);
}
void cre_0(){//生成样例输入 
    freopen("data\\0.in","w",stdout);
	printf("10\n");
	printf("0 0 0 0 0 0 0 0 0 0\n");
	printf("5\n");
	printf("3\n1\n2\n3\n10\n");
}
int main(){
	srand((unsigned)time(nullptr));
	
	cre_0();
	
	for(int mmm=1;mmm<=2;mmm++){
  		start(mmm);
  		int n=rad_int(1,100),m=rad_int(1,50);
  		cout<<n<<endl;
  		for(int i=1;i<=n;i++) printf("%d ",rad_int(0,1));
  		cout<<endl<<m<<endl;
  		for(int i=1;i<=m;i++) printf("%d\n",rad_int(1,n));
	}
	
	for(int mmm=3;mmm<=4;mmm++){
  		start(mmm);
  		int n=rad_int(100,10000),m=rad_int(100,5000);
  		cout<<n<<endl;
  		for(int i=1;i<=n;i++) printf("%d ",0);
  		cout<<endl<<m<<endl;
  		for(int i=1;i<=m;i++) printf("%d\n",rad_int(1,n));
	}
	
	for(int mmm=5;mmm<=7;mmm++){
  		start(mmm);
  		int n=rad_int(100,10000),m=rad_int(100,5000);
  		cout<<n<<endl;
  		for(int i=1;i<=n;i++) printf("%d ",rad_int(0,1));
  		cout<<endl<<m<<endl;
  		for(int i=1;i<=m;i++) printf("%d\n",rad_int(1,n));
	}
	
	for(int mmm=8;mmm<=10;mmm++){
  		start(mmm);
  		int n=rad_int(100000,10000000),m=rad_int(100000,1000000);
  		cout<<n<<endl;
  		for(int i=1;i<=n;i++) printf("%d ",rad_int(0,1));
  		cout<<endl<<m<<endl;
  		for(int i=1;i<=m;i++) printf("%d\n",rad_int(1,n));
	}
	
	const string t1="data\\",t2="Hack",t3=".in";
	const string s=t1+t2+t3;
  	freopen(s.c_str(),"w",stdout);
	int n=10000000,m=1000000;
	cout<<n<<endl;
	for(int i=1;i<=n;i++) printf("%d ",rad_int(0,1));
	cout<<endl<<m<<endl;
	for(int i=1;i<=m;i++) printf("%d\n",rad_int(1,n));
	return 0;
}
  1. 造输出数据代码
CPP
#include<bits/stdc++.h>
using namespace std;
void start(int i) { //预处理
	const string t1="data\\",t2=to_string(i),t3=".in",t4=".out";
	const string s1=t1+t2+t3,s2=t1+t2+t4;
	freopen(s1.c_str(),"r",stdin);
	freopen(s2.c_str(),"w",stdout);
}
bool k[10000001];
int main() {
	const int xxx=10;
	for(int mmm=0; mmm<=xxx; mmm++) {
		start(mmm);
		int n,m;
		cin>>n;
		for(int i=1;i<=n;i++) {
			int t;
			scanf("%d",&t);
			k[i]=t;
		}
		cin>>m;
		for(int i=1;i<=m;i++) {
			int t;
			scanf("%d",&t);
			k[t]=!k[t];
		}
		for(int i=1;i<=n;i++) {
			printf("%d ",k[i]);
		}
	}
	
	const string t1="data\\",t2="Hack",t3=".in",t4=".out";
	const string s1=t1+t2+t3,s2=t1+t2+t4;
	freopen(s1.c_str(),"r",stdin);
	freopen(s2.c_str(),"w",stdout);
	int n,m;
	cin>>n;
	for(int i=1;i<=n;i++) {
		int t;
		scanf("%d",&t);
		k[i]=t;
	}
	cin>>m;
	for(int i=1;i<=m;i++) {
		int t;
		scanf("%d",&t);
		k[t]=!k[t];
	}
	for(int i=1;i<=n;i++) printf("%d ",k[i]);
	return 0;
}
但是文件里输出的结果全是百分号和千分号,有没有哪位大佬帮我看看?调了1个小时没调出来。

回复

16 条回复,欢迎继续交流。

正在加载回复...