求助!30分

P1319 压缩技术

z_yk @ 2022-05-28 12:31:37

请问各位大佬,能帮我看下代码有什么问题吗?(过了三个测试点)

测试点信息:

#1:AC

#2:MLE

#3:AC

#4:WA

#5:WA

#6:MLE

#7:AC

#8:WA

#9:RE(或许是数组开大了)

#10:MLE

代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int n,cnt;
    cin>>n;
    int time[100001];
    int word[100001];
    for(int i=0;i<n*2;i++)
    {
        cin>>time[i];
    }

    for(int i=0;i<n*2;i++)
    {
        if(i==0)
        {
            cnt=time[i];
            for(int j=0;j<time[0];j++)
            {
                word[j]=0;
            }
        }
        else
        {

            for(int j=cnt;j<=cnt+time[i];j++)
            {
                if(i%2==0)word[j]=0;
                else if(i%2!=0)word[j]=1;
            }
            cnt+=time[i];
        }

    }

    for(int i=0;i<n*n;i++)
    {
        if(i%n==0&&i!=0)cout<<endl;
        cout<<word[i];

    }
    return 0;
}

by _Hu_Tao @ 2022-08-13 09:37:59

这是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 z_yk @ 2023-01-15 19:27:04

@_Hu_Tao 哦哦谢谢


|