1 const int LEN=110005; 2 const int N=LEN*2; 3 int p[N]; 4 char str[LEN], tmp[N]; 5 //p[i]表示以str[i]为中心的回文往右延伸的 最长长度 6 void manacher(char* str, int* p....
分类:
编程语言 时间:
2014-11-12 21:00:49
阅读次数:
241
PalindromeTime Limit:15000MSMemory Limit:65536KB64bit IO Format:%I64d & %I64uSubmitStatusDescriptionAndy the smart computer science student was attend...
分类:
编程语言 时间:
2014-11-12 21:00:46
阅读次数:
231
题目大意:求正方形回文子矩阵数量(即左右对称、上下对称的正方形子矩阵)
正解是Manacher……但是Hash+二分是能卡过去的0.0 我太丧病了0.0
首先为了避免边长奇偶性带来的WT要把矩阵扩大二倍 然后样例就变成了这样:
00000000000
04020404040
00000000000
03010404030
00000000000
03050303030
00000...
分类:
其他好文 时间:
2014-11-10 15:34:05
阅读次数:
249
题目链接:http://poj.org/problem?id=2217题目大意: 求两个串的最长公共子串,注意子串是连续的,而子序列可以不连续。解题思路:有个炒鸡快的O(n)的Manacher算法。不过只能求裸的最长公共和回文子串。后缀数组解法是这类问题的模板解法。对于n个串的最长公共子串,这要把这...
分类:
编程语言 时间:
2014-10-23 12:09:09
阅读次数:
252
输出最大长度的回文子串。 1 string longestPalindrome(string s) 2 { 3 4 5 int id, mx, i, j, len, maxlen; 6 vector cvec; 7 vector ivec; 8 string st...
分类:
其他好文 时间:
2014-10-21 12:00:15
阅读次数:
136
1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define N 10001000 9 int n;10 int p[N];11 char s[N], str[N];12 ...
分类:
编程语言 时间:
2014-10-19 14:16:27
阅读次数:
251
腾讯的比赛的题目的质量都很高 特别喜欢这题目背景 每题都很有意思这题 也蛮难的 因为n太多了 一定要用O(n)的回文串算法来求我是在这里学习的 传送一般的话 都是char数组 使用特殊字符 表示插入 开头和末尾也是特别的字符 末尾的话是 '\0'这边的话 因为是Int数组 要注意下 0 和 末尾不能...
分类:
编程语言 时间:
2014-10-16 23:00:53
阅读次数:
221
1414: [ZJOI2009]对称的正方形Time Limit:10 SecMemory Limit:162 MBSubmit:331Solved:149[Submit][Status]DescriptionOrez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究。最近,Orez又得到了...
分类:
其他好文 时间:
2014-10-10 01:55:03
阅读次数:
841
有人问你,一个字符串中最长的回文字串是谁? 作为一个 2B 青年, 一年前的我会这样回答:暴力枚举每个字串,判断合法与否? ╮(╯▽╰)╭ 就是没什么戏。。。。 后来,在机房的一个大牛的介绍下,我知道了 Manacher 算法。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
分类:
其他好文 时间:
2014-09-25 00:56:57
阅读次数:
282
原理讲的清晰:Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串注意:①动态生命P[]和newStr数组后,不要忘记delete[] //其实这是基本的编码习惯②最终返回结果是P[i]-1下面是自己写的Manacher函数int manacher(char *src){ ...
分类:
其他好文 时间:
2014-09-20 19:44:09
阅读次数:
213