HDU
无名蒟蒻
苟利国家生死以,岂因祸福避趋之
展开
-
HDU-3746 Cyclic Nacklace
题目大意:给你一个字符串,要求将字符串的全部字符最少循环2次需要添加的字符数。例子: abcabc 已经循环2次,添加数为0 abcac 没有循环2次,添加字符abcac。数目为5. abcabcab 已经循环过2次,但第三次不完整,需要添加数为1 这题其实可以说是poj2185的子问题,其中求高度的部分跟本题同理,只是把每行看作了一个整体。本题可以非常巧妙的kmp解决。做一遍kmp之后我们可以得到原创 2016-08-13 10:17:17 · 399 阅读 · 0 评论 -
HDU 3613 Manacher应用
题意:上面的数字是26个字母的价值,接下来26个英文字母组成的字符串,将它分成两份,如果分后的串是回文串,则这个串的价值是这个串的所有字母的和,如果不是回文串则这个串价值为0。求最大价值和。看到回文串,第一时间可以想到manacher算法。只要得到了以第ii位为中心的最长回文串长度的一半ansians_i,便不难解决此题。我们可以枚举切割点ii,容易求出左子串的中心lmidlmid和右子串的中心rm原创 2016-08-13 09:48:17 · 221 阅读 · 0 评论 -
HDU 4333 Revolving Digits [扩展KMP]
题意:一个数字,依次将第一位放到最后一位,问小于本身的数的个数及等于本身的个数和大于本身的个数,但是要注意重复的不再计算。如果按照题意直接模拟,时间复杂度会达到Θ(|N|2)\Theta(|N|^2),然而我们会发现其中有许多不必要的重复比较,这时候扩展kmp算法就派上了用场。我们可以先把整个串复制一遍添到原串的结尾,如12121就是1212112121,做一遍扩展kmp后可求出next数组,也就是原创 2016-08-13 09:10:02 · 181 阅读 · 0 评论