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的更多相关文章

  1. BZOJ 2084: [Poi2010]Antisymmetry [Manacher]

    2084: [Poi2010]Antisymmetry Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 609  Solved: 387[Submit] ...

  2. BZOJ 2084 [Poi2010]Antisymmetry(manacher)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2084 [题目大意] 对于一个01字符串,如果将这个字符串0和1取反后, 再将整个串反过 ...

  3. bzoj 2084: [Poi2010]Antisymmetry【回文自动机】

    manacher魔改,hash+二分都好写,但是我魔改了个回文自动机就写自闭了orz 根本上来说只要把==改成!=即可,但是这样一来很多停止条件就没了,需要很多特判手动刹车,最后统计一下size即可 ...

  4. 【BZOJ】2084: [Poi2010]Antisymmetry

    http://www.lydsy.com/JudgeOnline/problem.php?id=2084 题意:一个01串,求满足字符串0和1取反后,再将整个串反过来和原串一样的子串数目.(n< ...

  5. BZOJ2084: [Poi2010]Antisymmetry

    2084: [Poi2010]Antisymmetry Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 187  Solved: 125[Submit] ...

  6. [BZOJ2084][Poi2010]Antisymmetry 二分+hash

    2084: [Poi2010]Antisymmetry Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 812  Solved: 503[Submit] ...

  7. 【bzoj2084】[Poi2010]Antisymmetry

    2084: [Poi2010]Antisymmetry Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1205  Solved: 756[Submit ...

  8. 【BZOJ2084】[Poi2010]Antisymmetry(manarcher)

    [BZOJ2084][Poi2010]Antisymmetry(manarcher) 题面 BZOJ 洛谷 题解 一眼马拉车吧...明显就是在回文串的基础上随便改了改. 似乎还可以魔改回文树,然而我这 ...

  9. bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp)

    bzoj2084/luoguP3501 [Poi2010]Antisymmetry(回文自动机+dp) bzoj Luogu 对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一 ...

随机推荐

  1. dos命令复制当天生成的以日期为文件名的文件

    1.利用SqlServer的自动备份功能,将数据自动备份,备份出的文件格式如下:             db_backup_201001270930.bak 2.编辑bat脚本            ...

  2. nltk.download()出错解决

    http://blog.csdn.net/joey_su/article/details/17289621 官方下载地址 http://www.nltk.org/nltk_data/ 把python自 ...

  3. Java数据结构——双向链表

    //================================================= // File Name : DoublyLinked_demo //------------- ...

  4. ajax传输 基础一

    一个简单页面的传输 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  5. NopCommerce源码分析ContainerBuilder builder.Update(container)

    /// <summary> /// Register dependencies /// </summary> /// <param name="config&q ...

  6. ssh-keygen不是内部或外部命令

    在**/Git/usr/bin目录下找到ssh-keygen.exe,将**/Git/usr/bin路径添加到环境变量中

  7. MQ介绍

    MQ    MQ传递主干, 在世界屡获殊荣. 它帮您搭建企业服务总线(ESB)的基础传输层.IBM WebSphere MQ为SOA提供可靠的消息传递.它为经过验证的消息传递主干, 全方位. 多用途的 ...

  8. jQuery.validator 验证规则详解

    前言:jQuery.validator是一款非常不错的表单验证插件,验证方式非常简单方便,它还对HTML5做了兼容处理,了解了验证规则,就基本掌握了它的使用,下面就让我一一道来 jQuery.vali ...

  9. jupyter notebook + pyspark 环境搭建

    安装并启动jupyter 安装 Anaconda 后, 再安装 jupyter pip install jupyter 设置环境 ipython --ipython-dir= # override t ...

  10. RGB颜色矩提取算法——Matlab

    一.颜色矩公式 一阶颜色矩——均值,反映图像明暗程度 二阶颜色矩 ——标准差,反映图像颜色分布范围 三阶颜色矩 ——方差,反映图像颜色分布对称性 二.方法一: firstMoment = mean(m ...