回文树
文章平均质量分 79
我不会额
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Gym - 100548G The Problem to Slow Down You
题目:给出A,B两个字符串,求A,B中相同的回文串的对数 思路:对A,B分别建一个回文树,然后分别从奇数根节点和偶数做一次dfs 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include原创 2017-09-13 09:22:06 · 736 阅读 · 0 评论 -
HDU - 5157 Harry and magic string
题目:给定一个字符串str,求str的不想交的回文子串的对数 思路:正向扫一遍,反向扫一遍 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #原创 2017-09-12 22:29:10 · 354 阅读 · 0 评论 -
HDU - 5394 Trie in Tina Town
题目:按要求建一棵树,每个节点有一个字符,求树上的价值=sum(len*cnt),len为回文串长度,cnt为该回文在树上出现了多少次。一共只有a,b,c,d这几种字符,回文串要保证是从上到下的。 思路:把last改成数组就可以了,保存每一层的last 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #原创 2017-09-12 19:24:45 · 510 阅读 · 0 评论 -
bzoj2565 最长双回文串
题目: 顺序和逆序读起来完全一样的串叫做回文串。比如 acbca 是回文串,而 abc 不是( abc 的顺序为“abc” ,逆序为 “cba” ,不相同)。 输入长度为 n 的串 S ,求 S 的最长双回文子串 T, 即可将 T 分为两部分 X , Y ,( |X|,|Y|≥1 )且 X 和 Y 都是回文串。 思路: 正向扫一遍,反向扫一遍 代码: #pragma commen原创 2017-09-12 14:42:24 · 374 阅读 · 0 评论 -
CodeForces - 17E Palisection 邻接表的回文树
题目:给出一个字符串要求找出多少对有相交部分的回文子串。 思路:直接求相交的不好算,我们可以用总对数减去不想交的回文串的对数。 Manacher算法: 先利用差分数组统计出以输入串的第i个字符结尾的回文串的数量sum1[i],然后令sum2[i] = sum2[i - 1] + sum1[i]作为sum1的前缀和, 那么对于中心为i半径为R[i]的回文串来说, 处在这组回原创 2017-09-12 14:08:51 · 429 阅读 · 0 评论 -
bzoj2160 拉拉队排练
题目: 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加油助威。一个阳原创 2017-09-11 22:10:49 · 796 阅读 · 0 评论 -
bzoj3676 回文串 回文树
题目: 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最 大出现值。 Input 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s。 Output 输出一个整数,为逝查回文子串的最大出现值。 Sample Input 【样例输入l】 abaca原创 2017-09-10 23:28:41 · 498 阅读 · 0 评论 -
URAL - 1960 Palindromes and Super Abilities 回文树
题目:给定一个字符串s,输出字符串s1...si (1 (1 ≤ len(s) ≤ 10^5) 思路:套一下模板就行了 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #i原创 2017-09-10 23:18:32 · 426 阅读 · 0 评论 -
HDU - 5658 CA Loves Palindromic 回文树
题目:给定一个字符串str,Q个询问l,r,问区间[l,r]内本质不同的回文串的个数 1≤T≤10, 1≤length≤1000, 1≤Q≤100000, 1≤l≤r≤length 思路:字符串长度不大,可以先预处理出来 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #incl原创 2017-09-10 22:54:02 · 411 阅读 · 0 评论 -
HDU - 4426 Palindromic Substring
题目:a-z都表示一个0~25的整数,一个长度为len的回文串的价值由前(len+1)/2个字符组成的26进制整数表示, 给出一个字符串,询问第k小的回文子串的价值 思路:保存一下节点的价值 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #inc原创 2017-09-13 16:58:48 · 479 阅读 · 0 评论 -
CodeChef - PALPROB Contest Page
题目:一个长度为len的回文串的回文值定义1+这个字符串的前len/2个字符组成的字符串的回文值,如果一个字符串不是回文串,那么它的回文值为0。 给你一个字符串,求它的回文子串的回文值之和 思路:用half来保存每个字符串的前len/2个字符组成的回文串的节点 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #incl原创 2017-09-13 14:51:29 · 360 阅读 · 0 评论 -
URAL - 2040 Palindromes and Super Abilities 2
题目:对于输入的字符串str (长度不超过5000000, 只包含a, b两种字符) 如果这个字符串从左到右依次加入字符形成str, 当每个字符加入时求新增加的本质不同的回文串的数量 思路:新增加的要么是0,要么是1,要注意输入和输出,不然会tle 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #in原创 2017-09-13 10:13:54 · 459 阅读 · 0 评论 -
HDU - 5421 Victor and String 在字符串的首尾添加字符
题目:有n种操作,开始给你一个空串,给你4中操作 1 c 在字符串的首部添加字符c 2 c 在字符串的尾部添加字符c 3 询问字符中的本质不同的回文串的个数 4 询问字符串中回文串的个数 思路:last[0]表示首部的操作的位置,last[1]表示尾部的操作的位置 代码: #pragma comment(linker, "/STACK:1024000000,10240000原创 2017-09-12 23:18:47 · 1320 阅读 · 0 评论
分享