BZOJ2342 双倍回文 [manacher][set]
来源:互联网 发布:angularjs repeat源码 编辑:程序博客网 时间:2024/05/21 07:30
手写字符串读优莫名RE,改成scanf就AC了,莫(m)队(d)指(z)针(z)。。。
枚举x为对称轴,即枚举第一个wR的最后一位。
找规律发现
按照
#include<set>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=1001000;set<int> mp;set<int> :: iterator it;int n,p[N<<1],q[N<<1],flag=1;char s[N<<1],now[N<<1];void readin(int &res){ static char ch;register int flag=1; while((ch=getchar())<'0'||ch>'9')if(ch=='-')flag=-1;res=ch-48; while((ch=getchar())>='0'&&ch<='9')res=res*10+ch-48;res*=flag;}bool cmp(int a,int b){ return (a-p[a])<(b-p[b]);}int Manacher(){ int ans=0,mx=0,id; for(int i=1;i<=n;i++){ if(mx>=i)p[i]=min(mx-i,p[2*id-i]); else p[i]=0; for(;s[i+p[i]+1]==s[i-p[i]];p[i]++); if(p[i]+i>mx)id=i,mx=p[i]+i; q[i]=i; } sort(q+1,q+1+n,cmp); for(register int i=1;i<=n;i++){ while(flag<=n&&q[flag]-p[q[flag]]<=i)mp.insert(q[flag++]); it=mp.upper_bound(i+p[i]/2); if(it!=mp.begin())ans=max(ans,(*--it-i)*4); } return ans;}int main(){ readin(n),scanf("%s",s+1),cout<<Manacher()<<endl; return 0;}
阅读全文
0 0
- BZOJ2342 双倍回文 [manacher][set]
- bzoj2342 双倍回文【manacher+set】
- 【bzoj2342】 SHOI2011 双倍回文 manacher+set
- bzoj2342 [Shoi2011]双倍回文(manacher+暴力/set)
- BZOJ2342: [Shoi2011]双倍回文【Manacher】
- [bzoj2342][Shoi2011]双倍回文 manacher
- 【BZOJ2342】【Shoi2011】双倍回文 Manacher算法
- [BZOJ2342][Shoi2011]双倍回文(manacher)
- [BZOJ2342] SHOI2011 双倍回文 manacher O(n)
- 【BZOJ2342】【Shoi2011】双倍回文 Manacher+枚举+最优性剪枝
- 【BZOJ2342】双倍回文,manacher+并查集优化
- 【bzoj2342】[Shoi2011]双倍回文
- [BZOJ2342] [Shoi2011]双倍回文
- bzoj2342【SHOI2011】双倍回文
- [bzoj2342][SHOI2011]双倍回文
- 【SHOI2011】bzoj2342 双倍回文
- bzoj2342(双倍回文)
- bzoj2342 [Shoi2011]双倍回文
- 案例:Ajax站内搜索
- vijosp1071-01背包&记录组合&细节-新年趣事之打牌
- 【python学习笔记】Python中*args 和**kwargs的用法
- springmvc+shiro+maven 实现登录认证与权限授权管理 201
- select 1和select 0进行优化
- BZOJ2342 双倍回文 [manacher][set]
- 消息气泡
- jeecg 综合报表
- feagment activity Android
- mtk6735 java.util.MissingFormatArgumentException: Format specifier
- kotlin中的object更像是语法糖
- Java传递音频给PC端C#程序<一>
- python学习总结(一)
- Selenium2+Python2.0自动化测试【18】 unittest框架①