数据下载下来一下手测是对的 还是爆0 求教

P1320 压缩技术(续集版)

13813812138lalala @ 2018-07-17 23:40:48

#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
    int i=0,ans=0,len;
    char s[40001]={},k,c;
    cin>>s;
    len=strlen(s);
    for(i=len;i<len*len+len;i++)
    {
        cin>>c;
        if(c!='\n')
    }
    cout<<len<<" ";
    k='0';
    for(i=0;i<len;i++)
    {
        if(k==s[i]) ans++;else
        {
            k=s[i];
            cout<<ans<<" ";
            ans=1;
        }
        if (i==len-1)cout<<ans;
    } 
    return 0;
}

求教


by 13813812138lalala @ 2018-07-17 23:42:56

//in
11111
00100
11111
00100
11111
//out
5 0 5 2 1 2 5 2 1 2 5 

by 13813812138lalala @ 2018-07-17 23:44:49

第一个发错了 重发

#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
    int i=0,ans=0,len;
    char s[40001]={},k,c;
    while((c=getchar())!=EOF)
    {
        if(c!='\n'){
            s[i]=c;
            i++;
        }//if(i==49)break; 
    }
//  cout<<i<<endl;
    len=strlen(s);
    cout<<sqrt(len)<<" ";
    k=s[0];
    for(i=0;i<len;i++)
    {
        if(k==s[i]) ans++;else
        {
            k=s[i];
            cout<<ans<<" ";
            ans=1;
        }
        if (i==len-1)cout<<ans;
    } 
    return 0;
}

by 土间太平 @ 2018-07-18 08:01:27

常见“我在本地/xxOJ AC了、洛谷却不过”的原因 Linux中换行符是'\n'而Windows中是'\r\n'(多一个字符),有些数据在Windows中生成,而在洛谷评测机Linux环境下评测。这种情况在字符串输入中非常常见。

评测系统建立在Linux下,可能由于使用了Linux的保留字而出现CE,但在Windows下正常。

Linux对内存的访问控制更为严格,因此在Windows上可能正常运行的无效指针或数组下标访问越界,在评测系统上无法运行。

严重的内存泄露的问题很可能会引起系统的保护模块杀死你的进程。因此,凡是使用malloc(或calloc,realloc,new)分配而得的内存空间,请使用free(或delete)完全释放。

数据可能真的有问题。但是如果不止一个人通过了这道题,那最好不要怀疑是数据的锅。


by 土间太平 @ 2018-07-18 08:02:54

摘自@lin_toto 的帮助-百科-洛谷 滑到最下面就有


by Chiaro @ 2018-07-20 18:17:01

我也是诶,样例过了,下载数据用了也对了但是一交就全WA


by 据设错了 @ 2018-08-11 21:57:04

@鸩羽_ 同感


by 天野_阳菜 @ 2018-10-30 10:47:54

我也是


|