BZOJ 2084: [Poi2010]Antisymmetry
Sol
Manacher.
\(O(n)\) Manacher很简单啊.改一改转移就可以了.
然后我WA了.一开始天真的认为id只会是奇数,然后就GG.
一组 Hack 数据
3
1 0 0
然后就跳过偶数的拓展...就过了...
Code
/**************************************************************
Problem: 2084
User: BeiYu
Language: C++
Result: Accepted
Time:24 ms
Memory:9100 kb
****************************************************************/ #include<cstdio>
#include<iostream> using namespace std; const int N = 500050;
typedef long long LL; int n,m;LL ans;
int ch[N<<1],p[N<<1]; inline int in(int x=0,char ch=getchar()){ while(ch>'9'||ch<'0') ch=getchar();
while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x; }
inline char mychar(char ch=getchar()){ while(ch>'1'||ch<'0') ch=getchar();return ch; } int main(){
// freopen("in.in","r",stdin);
n=in(),m=2*n+1;ch[0]=888,ch[1]=19,ch[m+1]=666;
for(int i=1;i<=n;i++) ch[i<<1]=mychar()-'0',ch[i<<1|1]=19;
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(ch[i+p[i]]+ch[i-p[i]]==1||ch[i+p[i]]+ch[i-p[i]]==38) p[i]++;
if(i+p[i]>mx) mx=i+p[i],id=i;
} // for(int i=1;i<=m;i++) printf("%2d ",ch[i]);cout<<endl;
// for(int i=1;i<=m;i++) printf("%2d ",p[i]);cout<<endl;
for(int i=1;i<=m;i+=2) ans+=(p[i]-1)>>1;
printf("%lld\n",ans);
return 0;
}
BZOJ 2084: [Poi2010]Antisymmetry的更多相关文章
- BZOJ 2084: [Poi2010]Antisymmetry [Manacher]
2084: [Poi2010]Antisymmetry Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 609 Solved: 387[Submit] ...
- BZOJ 2084 [Poi2010]Antisymmetry(manacher)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2084 [题目大意] 对于一个01字符串,如果将这个字符串0和1取反后, 再将整个串反过 ...
- bzoj 2084: [Poi2010]Antisymmetry【回文自动机】
manacher魔改,hash+二分都好写,但是我魔改了个回文自动机就写自闭了orz 根本上来说只要把==改成!=即可,但是这样一来很多停止条件就没了,需要很多特判手动刹车,最后统计一下size即可 ...
- 【BZOJ】2084: [Poi2010]Antisymmetry
http://www.lydsy.com/JudgeOnline/problem.php?id=2084 题意:一个01串,求满足字符串0和1取反后,再将整个串反过来和原串一样的子串数目.(n< ...
- BZOJ2084: [Poi2010]Antisymmetry
2084: [Poi2010]Antisymmetry Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 187 Solved: 125[Submit] ...
- [BZOJ2084][Poi2010]Antisymmetry 二分+hash
2084: [Poi2010]Antisymmetry Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 812 Solved: 503[Submit] ...
- 【bzoj2084】[Poi2010]Antisymmetry
2084: [Poi2010]Antisymmetry Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1205 Solved: 756[Submit ...
- 【BZOJ2084】[Poi2010]Antisymmetry(manarcher)
[BZOJ2084][Poi2010]Antisymmetry(manarcher) 题面 BZOJ 洛谷 题解 一眼马拉车吧...明显就是在回文串的基础上随便改了改. 似乎还可以魔改回文树,然而我这 ...
- bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp)
bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp) bzoj Luogu 对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一 ...
随机推荐
- dos命令复制当天生成的以日期为文件名的文件
1.利用SqlServer的自动备份功能,将数据自动备份,备份出的文件格式如下: db_backup_201001270930.bak 2.编辑bat脚本 ...
- nltk.download()出错解决
http://blog.csdn.net/joey_su/article/details/17289621 官方下载地址 http://www.nltk.org/nltk_data/ 把python自 ...
- Java数据结构——双向链表
//================================================= // File Name : DoublyLinked_demo //------------- ...
- ajax传输 基础一
一个简单页面的传输 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- NopCommerce源码分析ContainerBuilder builder.Update(container)
/// <summary> /// Register dependencies /// </summary> /// <param name="config&q ...
- ssh-keygen不是内部或外部命令
在**/Git/usr/bin目录下找到ssh-keygen.exe,将**/Git/usr/bin路径添加到环境变量中
- MQ介绍
MQ MQ传递主干, 在世界屡获殊荣. 它帮您搭建企业服务总线(ESB)的基础传输层.IBM WebSphere MQ为SOA提供可靠的消息传递.它为经过验证的消息传递主干, 全方位. 多用途的 ...
- jQuery.validator 验证规则详解
前言:jQuery.validator是一款非常不错的表单验证插件,验证方式非常简单方便,它还对HTML5做了兼容处理,了解了验证规则,就基本掌握了它的使用,下面就让我一一道来 jQuery.vali ...
- jupyter notebook + pyspark 环境搭建
安装并启动jupyter 安装 Anaconda 后, 再安装 jupyter pip install jupyter 设置环境 ipython --ipython-dir= # override t ...
- RGB颜色矩提取算法——Matlab
一.颜色矩公式 一阶颜色矩——均值,反映图像明暗程度 二阶颜色矩 ——标准差,反映图像颜色分布范围 三阶颜色矩 ——方差,反映图像颜色分布对称性 二.方法一: firstMoment = mean(m ...