20070916lc @ 2021-08-14 12:13:05
我裂开,什么呀
#include <bits/stdc++.h>
using namespace std;
int main(){
char s1[201];
char s[50000],s2[50000];
int k=1,v=0;
gets(s1);
int u=strlen(s1);
for(int i=0;i<u;i++){
s[i+1]=s1[i];
}
for(int i=1;i<u;i++)
for(int l=1;l<=u;l++)
cin>>s[i*u+l];
//前面是降维
int n[50001],r=s[1],q=1-s[1];
//r,q是0,1,这样方便点
for(int i=2;i<=u*u;i++){
if(s[i]!=r){
v++;
n[v]=k;
k=1;
swap(r,q);
}
else k++;
}
cout<<u;
for(int i=1;i<=v;i++)
cout<<n[i]<<" ";
return 0;
}
by Q_CR的小迷妹 @ 2021-08-14 12:18:44
数组用全局变量好一点
by 20070916lc @ 2021-08-14 12:20:41
#include <bits/stdc++.h>
using namespace std;
int main(){
char s1[201];
char s[50000],s2[50000];
int k=1,v=0;
gets(s1);
int u=strlen(s1);
for(int i=0;i<u;i++){
s[i+1]=s1[i];
}
for(int i=1;i<u;i++)
for(int l=1;l<=u;l++)
cin>>s[i*u+l];
int n[50001];
char r='0';
for(int i=2;i<=u*u;i++){
if(s[i]!=r){
v++;
n[v]=k;
k=1;
if(r=='0') r='1';
else r='0';
}
else k++;
}
cout<<u;
for(int i=1;i<=v;i++)
cout<<n[i]<<" ";
cout<<k;
return 0;
}
//好了
by 20070916lc @ 2021-08-14 12:25:09
还是0分 Help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
by _l_l_l_l_l_ @ 2021-08-14 13:03:10
换成不压维的试试
by _l_l_l_l_l_ @ 2021-08-14 13:07:46
而且u错了
by 20070916lc @ 2021-08-14 19:08:44
@WenZKbb u哪错了
萌新表示疑惑
by 优秀好少年 @ 2021-08-15 10:24:02
#include <bits/stdc++.h>
using namespace std;
char s1[205];
char s[50000];//s2没用到啊?
int main()
{
int k=0;
gets(s1);
int u=strlen(s1);
u-=1;
//注意了啊,落谷里面的gets和编译器里的有差别,它会把行末的换行给读进去,所以这里我们需要把行末换行的那一位去掉.
for(int i=0;i<u;i++)
{
s[i+1]=s1[i];
}
for(int i=1;i<u;i++)
for(int l=1;l<=u;l++)
cin>>s[i*u+l];
cout<<u<<" ";//记得加上空格呀
//完全可以在循环当中就输出完毕,不需要用n存.
char r='0';
//帮你查了测试点,它第一个数可能是1的齁,所以i要从1开始 ,而且最开始k要定义成0.
for(int i=1;i<=u*u;i++)
{
if(s[i]!=r)
{
//同理,v也不需要.
cout<<k<<" ";
k=1;
r=s[i];
}
else k++;
}
cout<<k;
return 0;
}
//根据我说的这几点去改好就能AC了,加油!
小小求波关注不过分吧
by 20070916lc @ 2021-08-15 19:09:12
@优秀好少年 互相关注呗,不香吗?
by 优秀好少年 @ 2021-08-15 21:04:46
关注了关注了