最小/大表示法
小胡同的诗
千里之行,始于足下
展开
-
字符串的最小(大)表示法
循环字符串的最小表示法的问题可以这样描述:对于一个字符串S,求S的循环的同构字符串S’中字典序最小的一个。由于语言能力有限,还是用实际例子来解释比较容易:设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca。而且最小表示的S’是adbc。对于字符串循环同构的最小表示法,其问题实质是求S...转载 2019-02-06 10:34:03 · 175 阅读 · 1 评论 -
HDU2609How many(最小表示法+set去重)
题目链接:hdu2609题目大意:给n段01串,问这些串中共有几组同构串。同构串定义:两个字符串存在 分别从x,y下标开始直到x-1,y-1(循环表示)字符都相等的表示,则这两个串同构。解题思路:用暴力O(n^2)搜索的话显然会超时,这里引进O(n)的 字符串最小表示法,并且将串利用set去重。最小/大表示法:同kmp的next数组类似,都是利用减少重复状态搜索的思路进行优化。最小表示法...原创 2019-10-11 08:40:44 · 266 阅读 · 0 评论 -
HDU4162Shape Number(一阶差分预处理+最小表示法)
题目链接:hdu4162题目大意:总之就是在介绍计算机视觉中链码的东西。给一个数字串,先如果相邻差值为负数的话要将结果+8否则记录结果。最后将这个串看成一个循环串,打印字典序最小的串表示(求同构串)。解题思路:先预处理一下,注意边界相减是原串而不是更新完的结果!然后利用最小表示法求同构串。预处理:ans[i] = ((str[(i+1)len]-str[i])+8)%8。AC代码:#in...原创 2019-02-06 16:25:48 · 259 阅读 · 0 评论