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都不会统计,读题要仔细。