【BZOJ 2084】[Poi2010]Antisymmetry manacher
来源:互联网 发布:斯托克斯矩阵 编辑:程序博客网 时间:2024/04/30 03:17
其实就是找回文字串,但是需要注意的是,回问字串的长度必须是偶数。
令1为2,0还是0,中间插入的字符是1,这样的话就可以很方便的判断,只用两边相加位就认定为相等。
#include<cstdio>#include<cstring>#include<iostream>#define maxn 1000020 using namespace std;int n,p[maxn],a[maxn];char s[maxn];int main(){scanf("%d%s",&n,s+1);a[1]=1;for(int i=1;i<=n;i++)a[i<<1]= s[i]=='1' ? 2 : 0,a[(i<<1)-1]=1;a[0]=127,a[n<<1|1]=1;n=n<<1|1;for(int id,mx=0,i=1;i<=n;i+=2){if(mx>=i)p[i]=min(mx-i,p[2*id-i]);else p[i]=0;while(a[i+p[i]+1]+a[i-p[i]-1]==2&&i+p[i]<n&&i-p[i]>1)p[i]++;if(p[i]+i>mx)mx=p[i]+i,id=i;}int ans=0;for(int i=1;i<=n;i+=2)ans+=p[i]>>1;printf("%d",ans);return 0;}
0 0
- BZOJ 2084 [Poi2010]Antisymmetry Manacher
- 【BZOJ 2084】[Poi2010]Antisymmetry manacher
- BZOJ 2084 [Poi2010]Antisymmetry Manacher
- BZOJ 2084 Poi2010 Antisymmetry Manacher
- BZOJ[2084][Poi2010]Antisymmetry Manacher
- BZOJ 2084 Poi2010 Antisymmetry Manacher算法
- [BZOJ 2084]POI2010 Antisymmetry
- BZOJ 2084 [Poi2010]Antisymmetry
- BZOJ 2084: [Poi2010]Antisymmetry
- bzoj 2084: [Poi2010]Antisymmetry manachar
- BZOJ 2084: [Poi2010]Antisymmetry 题解
- 【bzoj2084】 POI2010 Antisymmetry manacher
- 【bzoj2084】【poi2010】【Antisymmetry】【manacher】
- 【BZOJ2084】[Poi2010]Antisymmetry【Manacher】
- bzoj2084【POI2010】Antisymmetry manacher
- bzoj 2084: [Poi2010]Antisymmetry (hash+二分)
- 【BZOJ 2084 [Poi2010]Antisymmetry 回文树
- BZOJ2084: [Poi2010]Antisymmetry manacher算法
- Unity3d:Occlusion Culling
- c# donald gerald robert
- c/c++调用Java
- cordova/ionic alipay 支付宝插件
- 数据库设计原则
- 【BZOJ 2084】[Poi2010]Antisymmetry manacher
- 我的2016年个人总结
- 原码、反码、补码、负数的移位
- DB2常用函数详解(一):字符串函数
- [51Nod 1189阶乘分数]数学
- Launcher介绍
- 静态成员
- 设计模式(十三)——享元模式
- mac 安装redis