社区讨论
造数据的烦恼
灌水区参与者 3已保存回复 16
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 16 条
- 当前快照
- 1 份
- 快照标识符
- @lzhu8x40
- 此快照首次捕获于
- 2024/08/06 11:05 2 年前
- 此快照最后确认于
- 2024/08/06 11:58 2 年前
为什么(见以下代码)?
按需查看:题目传送门
- 题目标准程序
#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;
}
- 造输入数据代码
#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;
}
- 造输出数据代码
#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 条回复,欢迎继续交流。
正在加载回复...