求救!!救人一命,胜造七级浮屠!!!

P1319 压缩技术

# 无能为力
by 斯蒂芬王 @ 2018-11-28 18:55:10


你在程序运行中的p始终是0,所以不能判定出p==n
by woshishei @ 2018-11-28 18:55:28


你确定你的p++放对地方了吗
by ZERORUSH @ 2018-11-28 18:56:12


```cpp #include<bits/stdc++.h> using namespace std; int main() { int n,x[100000],n1[100000],p=0; cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>n1[i]; for(int i=1;i<=n;i++) { for(int j=1;j<=x[i];j++) { cout<<"0"; p++;//你忘了写 if(p==n) { p=0; cout<<endl; p++; } } for(int j=1;j<=n1[i];j++) { cout<<"1"; p++;//你忘了写 if(p==n) { p=0; cout<<endl; p++; } } } return 0; } ```
by woshishei @ 2018-11-28 18:56:19


把if里的p++去掉
by woshishei @ 2018-11-28 18:57:04


@[woshishei](/space/show?uid=50130) 大佬
by ZERORUSH @ 2018-11-28 19:19:05


@[寒鸦少年](/space/show?uid=25936) 我是最菜的蒟蒻QwQ
by woshishei @ 2018-11-29 20:53:44


@[woshishei](/space/show?uid=50130) dalao:还是WA了两个点?
by xsl120505 @ 2018-11-30 21:54:55


@[xsl120505](/space/show?uid=106726) 注意这里: ```cpp cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>n1[i]; ``` 题目中输入的个数未知,不一定是$2 \times n$个。 ```cpp cin>>n; int sum=0,m1=0,m2=0,cnt=0;//sum表示输入数之和;m1表示x的个数;m2表示n1的个数;cnt表示目前正在输入第几个数 do{ int tmp; cin>>tmp; cnt++; if(cnt%2!=0)x[++m1]=tmp;//x的个数加一 else n1[++m2]=tmp;//n1的个数加一 sum+=tmp; }while(sum<n*n);//题目保证总和=n*n ``` 因为m1只可能等于m2或m2+1,所以先循环到m2,如果m1>m2的话在加一次就行 ```cpp for(int i=1;i<=m2;i++) { for(int j=1;j<=x[i];j++) //do something for 0 for(int j=1;j<=n1[i];j++) //do something for 1 } if(m1>m2) for(int i=1;i<=x[i];i++) //do something for 0 ```
by woshishei @ 2018-11-30 23:06:33


@[woshishei](/space/show?uid=50130) 怎么可能。。。还是我比较菜
by ZERORUSH @ 2018-12-01 19:24:13


|