随笔分类 -  哈希算法

摘要:题意: t组输入,每组数据输入一个整数n,代表字符串长度。下面再输入一个字符串 你需要判断这个字符串能不能分成大于1段,且这些段的最小表示法是一样的 例如:abccab,它可以分成2段,分别是abc和cab,它们都使用最小表示法(也就是字典序最小表示)表示之后都是abc,所以这两个串一样 题解: 因 阅读全文
posted @ 2020-08-15 14:57 kongbursi 阅读(189) 评论(0) 推荐(0) 编辑
摘要:UVA-11019 题意: 就是给你AB两个字符矩阵,问你B矩阵在A矩阵中的出现次数。 题解: 参考链接:https://blog.csdn.net/qq_38891827/java/article/details/80723483 我们可以进行二维hash,其实就是把n个横向串连在一起hash。注 阅读全文
posted @ 2020-06-02 21:20 kongbursi 阅读(292) 评论(0) 推荐(0) 编辑
摘要:UVA-257 题意: 给你很多串,你需要找到这个串内有没有两个长度大于3的回文字符串,且要保证这两个回文字符串不相同,也不能完全覆盖,但可以重合一部分 题解: 首先判断回文的话可以通过马拉车算法(Manacher算法),如果在某个位置上回文长度大于3的话就要判断一下,如果串长为奇数,那么就取3,否 阅读全文
posted @ 2020-06-02 21:17 kongbursi 阅读(174) 评论(0) 推荐(0) 编辑
摘要:HDU1686 题意: 找A串在B串中的出现次数(可重叠),可用KMP做,这里只提供哈希算法做的方法 题解: 先得到A串的hash值,然后在B中枚举起点,长度为lena的子串,检验hash值是否相同就可以了。 代码: /* -1 在ull里相当于2的六四次-2 ull炸了就当mod2e64 */ # 阅读全文
posted @ 2020-06-02 20:54 kongbursi 阅读(211) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示