救命

P1320 压缩技术(续集版)

EurekaStriker @ 2021-07-13 20:32:47

我如果程序是这样

#include <bits/stdc++.h>
using namespace std;
int main() 
{
    int a=0,b=1;
    char c[100000],d[1000];
    cin>>d;
    a=strlen(d);
    for(int i=0;i<a;i++)
        c[i]=d[i];
    for(int i=1;i<a;i++)
    {
        cin>>d;
        for(int j=0;j<a;j++)
            c[i*a+j]=d[j];
    }
    cout<<a<<" ";
    for(int i=1;i<a*a;i++)
    {
        if(c[i]!=c[i-1])
        {
            cout<<b<<" ";
            b=1;
        }
        else
            b++;
    }
    cout<<b;
}

测试点就第7,8个对

如果这样

#include <bits/stdc++.h>
using namespace std;
int main() 
{
    int a=0,b=0;//这改了!!!
    char c[100000],d[1000];
    cin>>d;
    a=strlen(d);
    for(int i=0;i<a;i++)
        c[i]=d[i];
    for(int i=1;i<a;i++)
    {
        cin>>d;
        for(int j=0;j<a;j++)
            c[i*a+j]=d[j];
    }
    cout<<a<<" ";
    for(int i=0;i<a*a;i++)//这改了!!!
    {
        if(c[i]!=c[i-1])
        {
            cout<<b<<" ";
            b=1;
        }
        else
            b++;
    }
    cout<<b;
}

测试点剩下的都全对…… emmm

求大佬指教


by Uzumaki @ 2021-07-13 20:44:15

i = 0i - 1 导致数组越界


by EurekaStriker @ 2021-07-13 20:50:03

这样还是过不了啊

#include <bits/stdc++.h>
using namespace std;
int main() 
{
    int a=0,b=0;
    char c[100000],d[1000];
    cin>>d;
    a=strlen(d);
    for(int i=0;i<a;i++)
        c[i]=d[i];
    for(int i=1;i<a;i++)
    {
        cin>>d;
        for(int j=0;j<a;j++)
            c[i*a+j]=d[j];
    }
    cout<<a<<" ";
    for(int i=0;i<a*a;i++)
    {
        if(c[i+1]!=c[i])
        {
            cout<<b<<" ";
            b=1;
        }
        else
            b++;
    }
    cout<<b;
}

emm应该怎么办呢


by kanjiankeji @ 2021-07-13 21:30:34

呵呵


by kanjiankeji @ 2021-07-14 08:25:29

了就会立刻


|