Help!Help! 可+关注(在帮我的情况下)

P1320 压缩技术(续集版)

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

关注了关注了


|