Manacher
Anoyer
这个作者很懒,什么都没留下…
展开
-
51nod-1089 最长回文字串 V2 (Manacher算法)
51nod-1089 最长回文子串 V2(Manacher算法) 回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。 输入一个字符串Str,输出Str里最长回文子串的长度。 Input 输入Str(Str的长度 <= 100000) Output 输出最长回文子串的长度L。 Sample Input daabaac ...原创 2018-08-02 21:14:05 · 394 阅读 · 0 评论 -
HDU - 3613 - Best Reward(马拉车加暴力)
博主链接题目链接题意:字母表的26个字母都有一个价值,给你一个字符串,将该字符串切成两份,对于每一份,如果是回文串,就获得该子串的字母价值之和,否则该子串的价值为0。求出将字符串切成两份后能够获得的最大价值。题解:先用Manacher算法求出以每个字母为中心的回文串的长度,并计算该字符串的前缀价值和。然后枚举切割点,得到两份子串。这样就可以知道每个子串的中心点,然后检查以该子串的中心...原创 2018-12-04 21:07:52 · 427 阅读 · 0 评论 -
HDU - 4513 - 吉哥系列故事――完美队形II (马拉车加判断条件)
博主链接题目链接题意:在一个长度为n的数组里面找回文串,要求回文串从中间向两边一次递减题解:在manacher过程中添加限制语句保证题目要求即可if(s_new[i+p[i]]!=-1111){ //如果前面位置大于当前位置,则不符合跳出 if(s_new[i+p[i]]<=s_new[i+p[i]-2])p[i]++; else break;}#i...原创 2018-12-04 21:09:43 · 265 阅读 · 0 评论 -
POJ - 3974 - Palindrome(裸马拉车)
博主链接题目链接题意:给一个字符串,求连续最长的回文子串的长度。题解:利用Manacher算法,裸的模板题,不多说了。不懂Manacher算法----见Manacher最长回文串算法代码:#include&lt;stdio.h&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;#define met(a) memset原创 2018-12-05 20:44:38 · 199 阅读 · 0 评论 -
HDU - 3068 - 最长回文(裸马拉车)
个人博客题目链接题意:给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等题解:裸的马拉车(Manacher)算法,直接上板子就够了。如果你没有马拉车板子,或者说你不会马拉车,请见Manacher最长回文串算法代码:#include<stdio.h>#include<algori...原创 2018-12-03 21:40:45 · 256 阅读 · 0 评论 -
HDU - 3294 - Girls' research(裸马拉车)
个人博客题目链接题意:通过第一个字符与a的关系翻译字符串,输出最长回文串和首尾下标,不存在则输出No solution!题解:用manachar求出最长回文串中心和半径,因为变换后的串各字符下标改变了,所以输出原首尾下标要公式倒推输出字符时要跳过插入的符号。如果你没有马拉车板子,或者说你不会马拉车,请见Manacher最长回文串算法代码:#include<stdio.h&g...原创 2018-12-03 21:42:06 · 424 阅读 · 0 评论