字符串
No__stop
这个作者很懒,什么都没留下…
展开
-
uva 719 - Glass Beads最小表示法模板
uva 719 - Glass Beads#include#include#includeusing namespace std ;char s[111111] ;int main (){ int n , i , j , k , p1 , p2 , cas ; scanf ( "%d" , &cas ) ; while ( cas -- ) { scanf ( "%s原创 2013-08-04 17:09:13 · 1159 阅读 · 0 评论 -
poj 3376 Finding Palindromes(扩展kmp+trie)
poj 3376 Finding Palindromes(扩展kmp+trie)题意:给出n个字符串,问这n个字符串两两链接(一共有n^2中连接方法),组成的所有的字符串中,有多少个回文串。好题!!!解题思路:对于两个串连接是否是回文串,我们应该怎样去判断了?假如我们把其中一个翻转,若此时,短的那个串是长的那个的前缀,而长的那个串后面剩余的后缀恰好是个回文串,那这两个串连起来就是个回文原创 2013-10-09 18:11:40 · 1711 阅读 · 0 评论 -
hdu 4749 Parade Show ( kmp )
hdu 4749 Parade Show ( kmp )题意:给出两个数列(可以看成串),问最多能在串1中找出几个不重叠的substring,使得这些substring的元素的相对大小关系与串2相同(显然,长度也要与串2相同)。解题思路:kmp。。比赛的时候有想到这个思路,但一直不知道怎么搞定这个相对大小关系。其实很简单。。count(AiAn+1)=count(BiBn+1),i原创 2013-09-23 20:15:44 · 1953 阅读 · 2 评论 -
hdu 4763 Theme Section(扩展kmp+线段树)
hdu 4763 Theme Section(扩展kmp+线段树)题目大意:给出一个字符串,问这个字符串的最长Theme Section是多长,Theme Section要符合以下条件,必须出现在字符串的开头,结尾,和中间,而且不能有重叠。解题思路:我们学校有队伍用的暴力kmp过的,我后来看了下他的代码,似乎是不行的。说说我的思路,我们扩展kmp求出一个next数组,next[i]表示以i原创 2013-09-28 19:30:17 · 1939 阅读 · 0 评论 -
POJ3974 Palindrome (manacher算法)
POJ3974 Palindrome (manacher算法)题意:非常简单,求一个串的最长回文子串。解题思路:本来用后缀数组也能解,但是串的长度为10^6,后缀数组就做不了了。因此,学习了下manacher算法。。这里有个链接推荐下:O(n)回文子串(Manacher)算法代码:#include#include#includeusing namespace原创 2013-10-17 16:52:41 · 1105 阅读 · 0 评论 -
URAL 1989 Subpalindromes(多项式哈希+线段树)
URAL 1989 Subpalindromes(多项式哈希+线段树)题意:给出一个字符串,长度为10^5,有m个操作m解题思路:用多项式哈希,那么我们判断是否回文串,就只要看正反区间的哈希值之和是否相等了,也就是线段树区间求和,那么修改就是单点更新了。#include#include#include#define lson l , m , rt << 1#define r原创 2013-10-23 14:22:09 · 1751 阅读 · 0 评论 -
hdu 4495 Rectangle(多项式hash+二分+dp)
hdu 4495 Rectangle(多项式hash+二分+dp)题意:求一个n*m的矩阵里面的最大的一个对称等腰直角三角形,三角形的腰必须平行于矩阵的边,n,m解题思路:腰平行于矩阵的边,其实也就是做四个方向,这里我的处理方法是只做一个方向的solution,然后把矩阵旋转三次,分别求solution。做法是这样的,先预处理出一个数组,这里我将其记为fuck[i][j],表示以(i,j)原创 2013-11-26 09:27:46 · 1421 阅读 · 1 评论 -
hdu 4691 Front compression (后缀数组)
hdu 4691 Front compression题意:很简单的,就是给一个字符串,然后给出n个区间,输出两个ans,一个是所有区间的长度和,另一个是区间i跟区间i-1的最长公共前缀的长度的数值的长度,加上不是公共部分的字符个数,加2,累加起来。解题思路:后缀数组裸题。。用rmq求最长公共前缀,询问就是o(1)的。有队伍用暴力的方法过的,对于i区间与i-1区间,如果左端点一样,就去长原创 2013-08-20 19:37:48 · 1880 阅读 · 1 评论 -
hdu 4763 Theme Section (扩展kmp)
hdu 4763 Theme Section (扩展kmp)题目大意:给出一个字符串,问这个字符串的最长Theme Section是多长,Theme Section要符合以下条件,必须出现在字符串的开头,结尾,和中间,而且不能有重叠。很抱歉,之前写了个很挫o(nlogn)的解法,误导了大家,后来我仔细想了想,其实用扩展kmp可以o(n)的实现。下面给出具体的实现方法:解题思路:还是原创 2013-09-28 21:30:42 · 2066 阅读 · 1 评论