居然求环的回文串还可以这么玩~~
本题题意是:一个环,两只兔子一只顺时针走,一只逆时针走,从头一个起点开始,每步两只都需要选择相同的数,最多走一圈,问最多走几步?
开始以为是求最多的点数==然后遇到环就想把环倍增,然而依旧不会。题解说是求出1-n的dp[i][j]值为区间内的回文串长度,然后把串分成两半,两边求和取最大值即可。为什么呢?将两侧子串的回文中点都可以当做开始的点,就是这里,我又读错题了,我以为起点是同一个石头。。。纠结了半天,用ac代码读入回文串的长度是偶数的情况,结果和我想的不一样才又看的...
分类:
其他好文 时间:
2016-05-07 10:01:29
阅读次数:
196
题目描述 最长回文子序列: 一个给定的字符串,求其最长回文子序列的长度; 一个回文子序列定义为原字符串的一个子序列去掉某些字符后生成的字符串为一个回文字符串; 例如cabbeaf:回文子序列有:c,a,aa,bb,,aba,abba,e,f,最长的就是abba,所以输出长度为4。 解题思路: 该问题 ...
分类:
其他好文 时间:
2016-04-05 16:16:13
阅读次数:
175
整理了一下关于回文子序列和回文子串的程序。 其中(1)和(2)是采用动态规划的思想写出的回文子序列的程序,这种子序列就是在原始的串中可以不连续,比如对于那种要求删除几个字符来得到最长的回文字符串的题就是这种情况。 比如caberbaf. 最长的子序列是5 abeba 或者abrba。而子串最长只有1 ...
分类:
其他好文 时间:
2016-04-05 12:29:31
阅读次数:
192
最长回文子序列可以用求解原串s和反转串rv的LCS来得到,因为要求回文串分奇偶,dp[i][j]保存长度,要求字典序最小,dp[i][j]应该表示回文串的端点,所以边界为单个字符,即i+j=len+1。这题最麻烦的地方在于字典序,我是写了个比较函数,有点暴力(常数大)。也可以反着定义,这时结点就要保...
分类:
其他好文 时间:
2015-10-01 23:00:03
阅读次数:
270
答案=回文子序列数目-回文子串数目。回文子串数目可以通过Manacher在$O(n)$时间内求出。对于求回文子序列的数目,设f[i]为以i为对称中心的字符对数,则它对答案的贡献为$2^{f[i]}-1$。对于两个数$1\leq i\leq j\leq n$,若a[i]==a[j],那么它们对f[i+...
分类:
其他好文 时间:
2015-09-03 20:22:52
阅读次数:
160
https://leetcode.com/problems/longest-palindromic-substring/manacher算法相关:http://blog.csdn.net/ywhorizen/article/details/6629268class Solution {public:...
分类:
编程语言 时间:
2015-09-01 21:33:57
阅读次数:
168
https://leetcode.com/problems/longest-palindromic-substring/manacher算法:http://blog.csdn.net/ywhorizen/article/details/6629268string longestPalindrome(...
分类:
编程语言 时间:
2015-09-01 18:28:26
阅读次数:
131
字符串问题
1.左旋问题
2.字符包含问题
3.字符匹配KMP
4.编辑距离
5.最大回文子串,公共子串
6.最大公共子序列,回文子序列,上升子序列
7.基本字符串函数实现
8.大整数的加,减,乘,除,模
9.合法回文,数字串
10.正则匹配,最长公共前缀,简化路经
1) 左旋字符串
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串ab...
分类:
其他好文 时间:
2015-08-20 06:48:58
阅读次数:
385
UVA
11404 - Palindromic Subsequence
求给定字符串的最长回文子序列,长度一样的输出字典序最小的。
对于
[l, r] 区间的最长回文串,他可能是[l+1, r] 和[l, r-1]两个区间的结果。或者当s[l] == s[r]时,区间[l+1, r-1]的结果再加上以s[l], s[r]为首尾的子序列。
dp[l][r]...
分类:
其他好文 时间:
2015-08-16 21:23:11
阅读次数:
99
求出一个连续子序列,这个子序列由三部分ABC构成,其中AB是回文串,A和C相同,也就是BC也是回文串。求这样一个最长的子序列。Manacher算法是在所有两个相邻数字之间插入一个特殊的数字,比如-1,Manacher算法跑完之后,就计算出每个数字为中心的回文子序列的最大长度由题意可以知道,AB和BC...
分类:
其他好文 时间:
2015-08-15 18:06:32
阅读次数:
115