80分求助,#4,#5两个测试点没过

P1319 压缩技术

dongxinye1 @ 2022-08-02 20:32:40

有大佬可以帮忙吗? 实在过不了

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[10086];
int b[10086];
int main(){ 
    cin>>n;
    for(int i=0;i<n*2;i++){
        cin>>a[i];
    }
    for(int i=0;i<n*2;i++){
        if(i==0){
            m=a[i];
            for(int j=0;j<a[0];j++){
                b[j]=0;
            }
        }else{
            for(int j=m;j<m+a[i]+1;j++){
                if(i%2==0){
        b[j]=0; 
        }else if(i%2!=0){
        b[j]=1;
        }
                    }
                m+=a[i];
            }
        }
        for(int i=0;i<n*n;i++){
            if(i%n==0&&i!=0){
                cout<<endl;
           }
            cout<<b[i];
        }
        return 0;
}

by _Hu_Tao @ 2022-08-12 21:51:26

这是AC代码,自己理解一下

你这个一维数组不好做

并且你怎么知道一定会有n*2个压缩码呢?

#include<bits/stdc++.h>
using namespace std;
int a[201][201];
int main(){
    int n,x,k=0,i=1,j=1;
    cin>>n;
    while(cin>>x){
        while(x>0){
            if(j<=n){
                a[i][j]=k;
                j++;
                x--;
            }
            else{
                i++;
                j=1;
            }
        }
        if(k==0)k=1;
        else k=0;   
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<a[i][j];
        }
        cout<<endl;
    }
    return 0;
}

by power_man @ 2022-08-19 10:12:53

楼上大佬的代码有运行不了的吗


by power_man @ 2022-08-19 10:14:06

这样应该就好了

#include<iostream>
using namespace std;
int a[201][201];
int main(){
    int n,x,he=0/*加了个这个*/,k=0,i=1,j=1;
    cin>>n;
    while(he<n*n){//改
        cin>>x;//改
        he+=x;//改
        while(x>0){
            if(j<=n){
                a[i][j]=k;
                j++;
                x--;
            }
            else{
                i++;
                j=1;
            }
        }
        if(k==0)k=1;
        else k=0;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<a[i][j];
        }
        cout<<endl;
    }
    return 0;
}

|