badge: 因为只求奇数长度的回文串,所以不需要中间加字符。 先求出Manacher数组。 然后,对于一个回文中心i,以它为中心的回文串半径长度一定存在p[i],p[i] 2,p[i] 4,...,1各自都有一个。 所以对p[i]这个值,在值域上打一下标记,从大到小做一下后缀和就可以了。 记得用快 ...
分类:
其他好文 时间:
2019-11-04 13:55:14
阅读次数:
68
Manacher算法是用来求一个字符串中最长回文串的算法。 考虑暴力求最长回文串的做法: 暴力枚举字符串中的所有字串判断是否回文,然后求最大值。 时间复杂度O(n^3),考虑优化。 我们从枚举所有字串改成枚举所有回文串的对称轴,向左右扩展直到不相等,得到最长回文串。 优化到O(n^2),还是不够优秀 ...
分类:
编程语言 时间:
2019-11-03 16:26:21
阅读次数:
65
"题目链接" 描述 【题解】 "一个讲得比较好的博客地址" ; 感觉manacher算法的大概思路就是利用回文串左右对称的性质。 利用之前算出来的以某个点为中心的回文串。而当前要枚举的串被包括在其中。 则可以用左半部分的结果来获取右边当前的串的结果。 O(N) 当然也可以枚举中间点在哪个地方然后O( ...
分类:
其他好文 时间:
2019-11-03 01:18:02
阅读次数:
75
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的最少分割次数。 示例: 输入:?"aab" 输出: 1 解释: 进行一次分割就可将?s 分割成 ["aa","b"] 这样两个回文子串。 class Solution { public: int ispalindrom ...
分类:
其他好文 时间:
2019-10-31 23:21:30
阅读次数:
111
题意 给你一个1e5的字符串,让你求出子串的数量,使得子串满足: 长度为$3n 2$,且$[1,2n 1]$和$[n,3n 2]$都是回文串 思路 可以看出,这两个回文串长度都是奇数 我们先用马拉车处理出每个字符$s[i]$可以左右扩展的最长长度$a[i]$ 我们找的就是找$(i,j)$的对数$(i ...
分类:
编程语言 时间:
2019-10-30 16:28:21
阅读次数:
71
2017CCPC杭州题目PDF Problem A. Super-palindrome 题解: 给你一个字符串,每一步可以将一个字符替换为另一个字符,问你最少多少步可以使得,该字符串任意奇数子串为回文串,偶数子串为回文串。 满足上面条件一定是ababab这种形式,所以我们只要找到数量最多的两种字符用 ...
分类:
其他好文 时间:
2019-10-30 13:47:43
阅读次数:
127
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S两组case之间由空行隔开(该空行不用处理)字符串 ...
分类:
其他好文 时间:
2019-10-22 15:10:48
阅读次数:
104
7-7 完美的代价 (50 分) 7-7 完美的代价 (50 分) 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一 ...
分类:
其他好文 时间:
2019-10-20 18:29:25
阅读次数:
194
"洛咕" 题意:给定一个以1为根的n个节点的树,每个点上有一个字母$(a z)$,每个点的深度定义为该节点到1号节点路径上的点数.每次询问 $a,b$ 查询以$a$为根的子树内深度为$b$的节点上的字母重新排列之后是否能构成回文串.$n,m include include include inclu ...
分类:
其他好文 时间:
2019-10-13 16:57:39
阅读次数:
62