【bzoj2084】 POI2010 Antisymmetry manacher
来源:互联网 发布:shell 遍历数组 编辑:程序博客网 时间:2024/05/08 08:08
挺水的一道题,manacher匹配的时候改一下匹配条件就可以了,只要两个数相加等于一时就可以,结果WA了三次,一定要注意是不存在奇数串的,而且统计的时候要用long long,还有一次是忘了除以二。。。
还是太弱了
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<iostream>#include<algorithm>#define maxn 1000010using namespace std;char s[maxn],a[2*maxn];int p[2*maxn];int n,m;long long ans;void manacher(){m=2*n+1;for (int i=1;i<=n;i++){a[i*2]=s[i];a[i*2+1]='#';}a[0]='+';a[1]='#';a[m+1]='-';int mx=0,id=0;for (int i=1;i<=m;i+=2){if (mx>i) p[i]=min(p[2*id-i],mx-i);else p[i]=1;while (a[i+p[i]]-'0'+a[i-p[i]]-'0'==1 || (a[i+p[i]]==a[i-p[i]] && a[i+p[i]]=='#')) p[i]++;if (i+p[i]>mx) mx=i+p[i],id=i;}}int main(){scanf("%d",&n);scanf("%s",s+1);manacher();for (int i=1;i<=m;i+=2) ans+=(p[i]-1)/2;printf("%lld\n",ans);return 0;}
0 0
- 【bzoj2084】 POI2010 Antisymmetry manacher
- 【bzoj2084】【poi2010】【Antisymmetry】【manacher】
- 【BZOJ2084】[Poi2010]Antisymmetry【Manacher】
- bzoj2084【POI2010】Antisymmetry manacher
- BZOJ2084: [Poi2010]Antisymmetry manacher算法
- [BZOJ2084][Poi2010]Antisymmetry(hash+二分||manacher)
- [BZOJ2084] [Poi2010]Antisymmetry
- bzoj2084【POI2010】Antisymmetry
- BZOJ2084[Poi2010] Antisymmetry
- BZOJ2084 POI2010 Antisymmetry
- BZOJ2084: [Poi2010]Antisymmetry
- 【bzoj2084】 [Poi2010]Antisymmetry
- 【bzoj2084】[Poi2010]Antisymmetry
- bzoj2084 [Poi2010]Antisymmetry
- 【bzoj2084】Antisymmetry manacher
- Bzoj2084:[Poi2010]Antisymmetry:manachar算法
- [bzoj2084][POI2010]ANT-Antisymmetry(二分+hash)
- BZOJ 2084 [Poi2010]Antisymmetry Manacher
- hdu5288(2015多校1)OO’s Sequence
- [Android]自定义ListView:上拉加载更多
- 关于DateTime
- Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式
- Android 第二天 类的复习
- 【bzoj2084】 POI2010 Antisymmetry manacher
- 【分布式集群】hadoop-2.6.0集群实例(接上一篇)
- web开发必备工具
- JAVA基础之内部类
- 左连接,右连接,内连接
- 快速傅里叶变换(FFT)
- 人见人爱A+B
- lx-0721-1001字符串统计
- 多校第一场 1001 hdu 5288 OO’s Sequence(枚举)