【BZOJ2084】[Poi2010]Antisymmetry(manarcher)

题面

BZOJ

洛谷

题解

一眼马拉车吧。。。明显就是在回文串的基础上随便改了改。

似乎还可以魔改回文树,然而我这智商可能魔改不出来。

稍微注意一下因为长度只能是偶数,所以不是加进来的字符的位置是不能用来更新的。

#include<iostream>
#include<cstdio>
using namespace std;
#define MAX 500500
int n;char s[MAX<<1];
int p[MAX<<1],mx,id;
long long ans;
int main()
{
scanf("%d",&n);scanf("%s",s+1);
for(int i=n;i;--i)s[i+i]=s[i],s[i+i+1]='#';
s[1]='-';s[0]=s[2];s[n+n+1]=s[n+n-1];
for(int i=1;i<=n+n+1;i+=2)
{
p[i]=mx>i?min(p[id*2-i],mx-i):1;
while((s[i+p[i]]=='#'&&s[i-p[i]]=='#')||(s[i+p[i]]^s[i-p[i]])==1)++p[i];
if(i+p[i]>mx)mx=i+p[i],id=i;
}
for(int i=3;i<n+n;i+=2)ans+=p[i]/2;
cout<<ans<<endl;
return 0;
}

【BZOJ2084】[Poi2010]Antisymmetry(manarcher)的更多相关文章

  1. 【bzoj2084】[Poi2010]Antisymmetry

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

  2. 【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现

    本项目是一个系列项目,最终的目的是开发出一个类似京东商城的网站.本文主要介绍后台管理中的区域管理,以及前端基于easyui插件的使用.本次增删改查因数据量少,因此采用模态对话框方式进行,关于数据量大采 ...

  3. Android自己定义组件系列【7】——进阶实践(4)

    上一篇<Android自己定义组件系列[6]--进阶实践(3)>中补充了关于Android中事件分发的过程知识.这一篇我们接着来分析任老师的<可下拉的PinnedHeaderExpa ...

  4. 【WPF】学习笔记(三)——这个家伙跟电子签名板有个约定

    这篇博客依旧是以电子签名板为基础而展开的,主要是对前文([WPF]学习笔记(一)--做一个简单的电子签名板)存在的部分问题进行解释,以及部分小功能的添加.由于这篇博客是建立在学习笔记一的基础上的,所以 ...

  5. CJOJ 2040 【一本通】分组背包(动态规划)

    CJOJ 2040 [一本通]分组背包(动态规划) Description 一个旅行者有一个最多能用V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2, ...

  6. CJOJ 2307 【一本通】完全背包(动态规划)

    CJOJ 2307 [一本通]完全背包(动态规划) Description 设有n种物品,每种物品有一个重量及一个价值.但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干 ...

  7. CJOJ 1071 【Uva】硬币问题(动态规划)

    CJOJ 1071 [Uva]硬币问题(动态规划) Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为 ...

  8. 洛谷P3796 - 【模板】AC自动机(加强版)

    原题链接 Description 模板题啦~ Code //[模板]AC自动机(加强版) #include <cstdio> #include <cstring> int co ...

  9. 【BZOJ1499】瑰丽华尔兹(动态规划)

    [BZOJ1499]瑰丽华尔兹(动态规划) 题面 BZOJ 题解 先写部分分 设\(f[t][i][j]\)表示当前在\(t\)时刻,位置在\(i,j\)时走的最多的步数 这样子每一步要么停要么走 时 ...

随机推荐

  1. FakeID签名漏洞分析及利用(二)

    本文转自:http://blog.csdn.net/l173864930/article/details/38409521 继上一次Masterkey漏洞之后,Bluebox在2014年7月30日又公 ...

  2. 网络对抗技术 2017-2018-2 20152515 Exp7 信息搜集与漏洞扫描

    1. 实践内容(3.5分) 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为. 原理:如果可以冒充域名服务器,然后把查询的 ...

  3. sinopia 搭建记录

    最近公司有个问题,一些公共部分每次都要手动发送,放到 git 上涉及到父子 git 问题,现在就想在内部搭建一个 npm,涉及到公共模块了就直接 npm update 更新一下.找到了 sinopia ...

  4. vs如何将工程配置,保存到属性表

    上次讲到新建一个opencv工程的配置过程,整个流程下来还是非常麻烦的.每次新建一个工程都要走这个流程的话就要疯了! 现在介绍一种将工程配置,保存到属性表的方法,那么下次新建工程时,只要添加这个属性表 ...

  5. 自定义CCNode

    对Touch事件的获取与处理可以使用CCLayer, CCMenuItem等,但是如果我们需要一个虚拟按键或者需要对特定精灵进行拖动等等,我们就需要自定义Touch类. 自定义Touch事件处理类重要 ...

  6. windows下如何查看进程、端口占用、杀死进程教程

    一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano 可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道 ...

  7. R语言学习 第四篇:函数和流程控制

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

  8. Shiro安全框架学习笔记

    一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和JavaEE项目中都可以使用.它主要用来处理身份认证,授权,企业会话管理 ...

  9. flask_admin 笔记五 内置模板设置

    内建模板 Flask-Admin是使用jinja2模板引擎 1)扩展内建的模板 不要完全覆盖内置的模板,最好是扩展它们. 这将使您更容易升级到新的Flask-Admin版本. 在内部,Flask-Ad ...

  10. wireshark找不到网卡

    在Capture Opinions中的interface若找不到网卡,一般是npf服务没有启动. npf是什么东东 Netgroup Packet Filter 网络数据包过滤器 NPF Device ...