题目参考自博客:http://blog.csdn.net/u011498819/article/details/38356675题意:查找这样的子回文字符串(未必连续,但是有从左向右的顺序)个数。简单的区间dp,哎,以为很神奇的东西,其实也是dp,只是参数改为区间,没做过此类型的题,想不到用dp,以...
分类:
其他好文 时间:
2014-08-18 10:36:34
阅读次数:
200
述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(00) { ...
分类:
其他好文 时间:
2014-08-16 20:56:41
阅读次数:
215
题意:给定一个字符串,求最少添加多少个字符可使得该字符串变为回文字符串
分析:设原序列S的逆序列为S' ,最少需要补充的字母数 = 原序列S的长度 - S和S'的最长公共子串长度
原因:要求最少添加几个字符,我们可以先从原串中找到一个最长回文串,然后对于原串中不属于这个回文串的字符,在它关于回文串中心的对称位置添加一个相同字符即可。那么需要添加的字符数量即为n-最长回文串长度。
最长回文串可以看作是原串中前面和后面字符的一种匹配(每个后面的字符在前面找到一个符合位置要求的与它相同的字符)。这种的回文匹配和原...
分类:
其他好文 时间:
2014-08-15 18:02:39
阅读次数:
223
题目大意:
给你m个字符,其中有n种字符,每种字符都有两个值,分别是增加一个这样的字符的代价,删除一个这样的字符的代价,让你求将原先给出的那串字符变成回文串的最小代价。
思路分析:
状态方程:dp[i][j] 表示 区间 i-j是回文串的最小代价。
状态转移:
有三种情况。
1、 i+1 ~ j 已经是回文串了,那么对于 i 这个字符,要么删除掉,要么在这个回文串后面加一个 s...
分类:
其他好文 时间:
2014-08-15 17:55:39
阅读次数:
172
给一个字符串(长度不超过1e5),m次操作(m不超过1e5),每次操作:1、查询[l, r]是否是回文串2、修改p位置的值为v...
分类:
其他好文 时间:
2014-08-12 10:23:33
阅读次数:
159
bnu36907 Subpalindromes
字符串hash+线段树
题意:给一个字符串(
1)将指定位置的字符改为c
2)询问l-r的子串,是否是回文串。
解法 :区间维护pl和pr,表示从左到右的hash和从右到左的hash,然后在up和query中合并区间,最后判断pl和pr是否相等即可。
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-08-11 21:29:52
阅读次数:
301
题目大意:问至少添加几个字符才能保证这个字符串是个回文串一开始想也想不到字符串匹配上,因为是找回文串,我们可以把已给字符串逆向得到一个新的字符串,然后比较两者得到最大匹配长度,最后总长度减去最大匹配长度就是所要求的值 1 #include 2 #include 3 #include 4 #in...
分类:
其他好文 时间:
2014-08-10 15:34:40
阅读次数:
190
说明: 深度搜索,一定要记忆下每次走完的结果(此处记下筛掉的情况)。
说明: 方法比较巧妙。记忆下每个位置开始的所有能成回文串的结束位置。然后深搜。
分类:
其他好文 时间:
2014-08-10 03:54:29
阅读次数:
284
题意:
一个只包含a和b的字符串 问 它有几个长度为偶数和长度为奇数的“压缩回文串” 压缩的概念是 相邻的相同字符压缩成一个字符
思路:
串经过压缩一定满足如下形式 ……ababab…… 那么这样只要两端的字符相同则中间一定是回文的 因此对于一个a它作为左端点形成的回文串个数就等于它右边的a的个数 那么长度是奇数还是偶数呢 可以这么判断 如果a在奇数位置上和它匹配的a也在奇...
分类:
其他好文 时间:
2014-08-09 21:34:29
阅读次数:
233
poj3974:http://poj.org/problem?id=3974题意:求给定长度最长回文串的长度。题解:直接套manacher,搞定。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const i...
分类:
其他好文 时间:
2014-08-09 15:43:38
阅读次数:
182