zhz小蒟蒻 @ 2018-12-20 19:37:45
题目标明宝石的长度为1000000,为什么我用了一个n方暴力算法也过了??注:我算的宝石长度范围为1~1000
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f[1011][1011][2];
char a[1000011];
int main()
{
int i,j,k,n;
gets(a);
n=strlen(a);
for(i=1;i<=n;i++)
{
if(a[i-1]=='G') f[i][i][0]=1;
else f[i][i][1]=1;
}
int ans=0;
for(int len=1;len<=n;len++)
{
for(i=1;i+len-1<=n;i++)
{
j=i+len-1; int mid=(i+j)/2;
f[i][j][1]+=f[i][mid][1]+f[mid+1][j][1];
f[i][j][0]+=f[i][mid][0]+f[mid+1][j][0];
if(f[i][j][1]==f[i][j][0]) ans=max(ans,len);
}
}
printf("%d",ans);
return 0;
}
by 初墨 @ 2018-12-20 19:45:02
……无语
by wxy_god @ 2018-12-20 19:46:07
数据需加强
by djh123 @ 2018-12-20 19:54:58
数据需加强
by pjykk @ 2018-12-20 20:05:33
@cz
by Ticzone @ 2018-12-20 20:26:36
真的吗?
@chen_zhe
by 秘密管理员 @ 2019-03-30 11:24:49
by Chinese_zjc_ @ 2020-07-16 15:43:39
估计数据用l=1,r=i的方法都可以过6个点。。。