零分求助!!ORZ!!数据是匹配的!!!

P1320 压缩技术(续集版)

IL杰佣 @ 2019-11-15 15:44:15

为什么??

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
int i,j,k,a[10000],w=1,n;
char x[210],t[41000];
int main()
{
//  freopen("d.in","r",stdin);
//  freopen("d.out","w",stdout);
    gets(x);
    n=strlen(x);
    strcat(t,x);
    for(i=2;i<=n;i++)
    {
        gets(x);
        strcat(t,x);
    }
    cout<<n<<' ';
    n=n*n;
    if(t[1]=='1')
    cout<<0<<' ';
//  for(i=0;i<n;i++)
//  {
//      cout<<t[i]<<' ';
//  }
    for(j=0;j<n;j++)
    {
        if(t[j]==t[j+1])
        {
            a[w]++;
        }
         else
        {
            a[w]++;
            w++;
        }
    }
//  cout<<n<<' ';
    for(i=1;i<w-1;i++)
    cout<<a[i]<<' ';
    cout<<a[w-1];
    return 0;
}

by asdypeij @ 2020-01-02 12:48:24

n=strlen(x);

改为

n=strlen(x)-1;

洛谷上的strlen()有问题。


by Sun_god @ 2020-07-17 15:59:34

if(t[j]==t[j+1])

这个地方,并没有判断最开始的数字是1还是0吧。 最开始的数字可以是1,而题目要求从0开始出现的地方统计,也就是说在此之前,无论出现了多少个1都不会统计,读题要仔细。


|