2AC 8WA蒟蒻求救!

P1320 压缩技术(续集版)

osfly @ 2021-02-05 20:40:27

#include<cstdio>
char ch;
char last='a';
int ysm[40000];
int tot=-1;
int cnt;
int cal;
bool flag;
int main()
{
    for(int i=0;i<40000;i++) ysm[i]=1;
    while(~scanf("%c",&ch))
    {
        if(ch!='\n'&&ch!='\r')
        {
            if(ch=='1'&&cnt==0) tot++;
            if(last!=ch)
            {
                last=ch;
                tot++;
            }
            else ysm[tot]++;
            cnt++;
        }
        else if(!flag)
        {
            cal=cnt;
            flag=true;
        }
    }
    printf("%d ",cal);
    for(int i=0;i<=tot;i++) printf("%d ",ysm[i]);
    return 0;
}

by Terrible @ 2021-02-05 21:43:44

@osfly

80分的输入都是1开头,但是题目的表述是

第一个数表示连续有几个0,第二个数表示接下来连续有几个1,第三个数再接下来连续有几个0,第四个数接着连续几个1,以此类推……

第一个数不是0,第二个输出数据要是0,表示输出了0个0。

你可以尝试着char last='0';

你的测试点上写着:

Wrong Answer. wrong
answer On line 1 column
3, read 1, expected 0.

就是第一行第三个字符出错,人家要'0'你给了个'1'。要学会读懂测试点的错误反馈。

(话说这么玩的话,是不是每两个字符都可以穿插很多个0,不过能理解出题人意思就好)

(也别说是自己理解题意的能力不行,这点上辩证的看,需要出题人和做题人互相理解。)


|