求解

P1319 压缩技术

xklong @ 2021-12-31 15:01:06

#include <bits/stdc++.h>
using namespace std;
int a[10005],n,h,ans;
int main()
{
    cin>>n;
    for(int i=0;i<n*2;i++) cin>>a[i];
    for(int i=0;i<n;i++)
    {   
        for(int k=0;k<a[ans];k++)
        {
            cout<<'0';
            h++;
            if(h==n)
            {
                cout<<endl;
                h=0;
            }               
        }
        ans++;
        for(int j=0;j<a[ans];j++)
        {
            cout<<'1';
            h++;
            if(h==n)
            {
                cout<<endl;
                h=0;
            }   
        }
        ans++;
    }
    return 0;
}

代码见上

4#5没过

求解


by kai_xk @ 2021-12-31 15:32:44

AC答案

#include<bits/stdc++.h>
using namespace std;
int main(){
    int p,n;
    bool flag=0;
    cin>>n;
    int y=0;
    for(int sum=0;sum<n*n;){
        cin>>p;
        sum+=p;
        for(int i=1;i<=p;i++){
            cout<<flag;
            y++;
            if(y==n){
                cout<<endl;
                y=0;
            }
        }
        flag=!flag;
    }
}

by Misaka_Mik0t0 @ 2021-12-31 15:41:27

@error300 正解题解区里多得是。楼主又不要正确代码,要怎么改才能改正确。


by 编码落寞 @ 2021-12-31 16:46:08

@xklong

N最大为200。N*N可以达到40000. 所以很可能你数组开小了。而且你的提交记录显示输出太少。


by kai_xk @ 2021-12-31 19:07:52

@kinnikinnick233 抱歉萌新一枚无恶意


by xklong @ 2022-01-01 16:16:20

@编码落寞 谢谢


by xklong @ 2022-01-01 16:17:05

@error300 谢谢


|