传送门

题意简述:问最长的由两个回文串连接而成最长字串长度。


思路:

正反串各建一个pampampam然后就完了。

代码:

#include<bits/stdc++.h>
#define ri register int
using namespace std;
const int N=1e5+5;
int n,f[N][2],ans=0;
char s[N];
struct pam{
	int son[N][26],fail[N],len[N],tot,last,siz[N];
	pam(){len[1]=-1,fail[0]=fail[1]=1,tot=1,last=0;}
	inline void insert(int x,int id){
		int p=last,np,q;
		while(s[id-len[p]-1]!=s[id])p=fail[p];
		if(!son[p][x]){
			len[np=++tot]=len[p]+2,q=fail[p];
			while(s[id-len[q]-1]!=s[id])q=fail[q];
			fail[np]=son[q][x],son[p][x]=np;
		}
		last=son[p][x],++siz[son[p][x]];
	}
}t1,t2;
int main(){
	scanf("%s",s+1),n=strlen(s+1);
	for(ri i=1;i<=n;++i)t1.insert(s[i]-'a',i),f[i][0]=t1.len[t1.last];
	reverse(s+1,s+n+1);
	for(ri i=1;i<=n;++i)t2.insert(s[i]-'a',i),f[n-i+1][1]=t2.len[t2.last];
	for(ri i=1;i<n;++i)ans=max(ans,f[i][0]+f[i+1][1]);
	cout<<ans;
	return 0;
}

2019.03.02 bzoj2565: 最长双回文串(pam)的更多相关文章

  1. bzoj2565: 最长双回文串 pam

    题意:找一个串中的最长连续两个回文子串长度 题解:建两个回文树,一个正着,一个反着,每次add之后last的长度就是后缀最长的回文串长度,然后两边加一遍即可 /******************** ...

  2. BZOJ2565 最长双回文串 【Manacher】

    BZOJ2565 最长双回文串 Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为"abc",逆序为"c ...

  3. BZOJ2565最长双回文串——manacher

    题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同).输入长度为n的串S,求S的最长双回文子串T,即可将T分为两 ...

  4. BZOJ2565:最长双回文串(Manacher)

    Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同). 输入长度为n的串S,求S的最长双回文子串T ...

  5. p4555&bzoj2565 最长双回文串

    传送门(洛谷) 传送门(bzoj) 题目 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同). 输入长度为 nnn 的串 SSS ...

  6. BZOJ2565: 最长双回文串(Manacher)

    Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同).输入长度为n的串S,求S的最长双回文子串T, ...

  7. bzoj千题计划305:bzoj2565: 最长双回文串(回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2565 正着构造回文自动机 倒过来再构造一个回文自动机 分别求出以位置i开始的和结尾的最长回文串 # ...

  8. BZOJ2565: 最长双回文串(回文树)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2565 记录一下每个点往前最长延伸位置,正反两遍,枚举分割点. #include<cstr ...

  9. bzoj2565: 最长双回文串

    manacher之后乱搞 #include <iostream> #include <cstdio> #include <cstring> #include < ...

随机推荐

  1. c# word操作篇,解决字符串长度超过255就不能替换的问题

    本文使用的是Microsoft.Office.Interop.Word组件,必须在系统安装了office相关组件的条件下进行,在com里面找到Microsoft  Word 16.0 Object L ...

  2. 代码管理工具libgit2sharp与sharpsvn

    在使用libgit2sharp 开发时出现: LibGit2Sharp.LibGit2SharpException: too many redirects or authentication repl ...

  3. VLAN中继协议

    VTP(VLAN Trunking Protocol):是VLAN中继协议,也被称为虚拟局域网干道协议.作用是十几台交换机在企业网中,配置VLAN工作量大,使用VTP协议,把一台交换机配置成VTP S ...

  4. shareSdk分享图片

    /** * 只分享图片 * * @param bitmap bitmap */ private void sharedImage(Bitmap bitmap) { RxPermissions rxPe ...

  5. 使用AsyncTask类实现简单的异步处理操作

    AsyncTask: 1.这是一种相比Handler更轻量级的处理异步任务的工具类 2.它和Handler类一样,都是为了不影响主线程(UI)而使用的((注:UI的更新只能在主线程中完成) 3.这个工 ...

  6. Linux命令:pwd

    打印当前目录的完全路径. -L 打印路径包含符合路径 -P 打印路径不含符合路径. -LP,可能打印的不同,取决于你对进入当前目录的方式是通过符号链接进入,还是物理目录进入.如果是符号链接进入,则-L ...

  7. 合批只是对CPU的优化,与GPU没有任何关系

    如题. 今天细想了下合批这个东西. 合批是节省了CPU的相关准备工作的工作量. 合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任 ...

  8. Nginx隐藏标识以及其版本号

    1.隐藏版本号 curl Nginx服务器时,有这么一行Server: nginx,说明我用的是 Nginx 服务器,但并没有具体的版本号.由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以 ...

  9. ArcGIS自定义工具箱-修复损坏的工作空间

    ArcGIS自定义工具箱-修复损坏的工作空间 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:替换数据源的工作空间 用途:针对损坏的数据源,批量进行修复 案例数 ...

  10. Swagger使用

    Swagger 1.集成springboot 第一步:pom <dependency> <groupId>io.springfox</groupId> <ar ...