manacher
Neo__Z
这个作者很懒,什么都没留下…
展开
-
poj3974 manacher模板
manacher模板题#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<cmath>#include<ctime>#include<algorithm>#include<iomanip>#include<cctype>#include<queue原创 2017-07-21 19:07:09 · 234 阅读 · 0 评论 -
bzoj 2565 最长双回文串 manacher
Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的字符串S。Output一行一个整数,表示最长双回文子串的长度。Sample Inputbaacaa原创 2017-07-27 09:56:50 · 269 阅读 · 0 评论 -
bzoj2342 双倍回文【manacher+set】
解题思路:开始以为只用r[i]是4的倍数的位置去检查其两侧是否也是回文就行了,但后面发现是错的,以为所求回文有可能在一个大回文内部,如aaabbaabbaaa;后面看了下题解,还是太天真了。 枚举对称轴x,考虑用len(x,y)*4更新答案,则必须满足y-r[y]<=x,其中y<=x+r[x]/2。 那么我们按照y-r[y]排序后,依次把y插入set,每次询问比x+p[x]/2小的最大值就可以了原创 2017-11-24 09:18:51 · 244 阅读 · 0 评论 -
bzoj3103or3350 Palindromic Equivalence/相似回文串【manacher+并查集+完美消除序列】
解题思路:我们可以先用manacher和并查集处理出哪些位置必须要填相同的字母,再把每个并查集看做一个点,再向和该并查集必须填不同字母的并查集连边,可以证明这样构造出的是一个弦图,详见:http://foreseeable97.logdown.com/posts/194507-herbicidalontak2010palindromic-equivalence然后就成了弦图染色问题了,求一边完美消除原创 2017-12-18 15:00:29 · 445 阅读 · 0 评论 -
LOJ#6387. 「THUPC2018」绿绿与串串 / String【manacher】
传送门解题思路:签到题。先manacher,一个点如果回文右端点抵到n则合法,或是左端点抵到1且右端点合法。#include<bits/stdc++.h>using namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();(c!='-')&&(c<'0'|...原创 2018-05-23 19:42:01 · 486 阅读 · 0 评论