随笔分类 -  字符串— —Hash

摘要:"题面戳我" Solution 二维矩阵$hash$,判断即可 自己YY了一个方法,$bzoj$T到飞,(一开始还用的三$hash$),交到luogu貌似跑的不慢啊qwq ~~(我是不会告诉你全输出1即可AC)~~ Update 我这个代码复杂度是错的$O(n^4)$的(~~我就说怎么卡不进时间~~ 阅读全文
posted @ 2018-08-25 19:31 Ning_Mew 阅读(324) 评论(0) 推荐(0)
摘要:"题面戳我" Solution 首先长度为偶数可以直接判掉 然后我们可以枚举删的位置,通过预处理的$hash$,判断剩余部分是否划分成两个一样的 判重要注意,我们把字符串分为三个部分$L_l+1+L_r$,($L_l=L_r$),如果上次答案和这次都出现在$L_l$,则一定不会是不同的,因为右边的$ 阅读全文
posted @ 2018-08-25 19:31 Ning_Mew 阅读(211) 评论(0) 推荐(0)
摘要:序列字符串$Hash$ 直接hash即可qwq 预处理:$Hash[3][i]$($Hash$值),$Pow[3][i]$(用来乘系数) 判断相等:$box_1=Hash[3][i] Hash[3][j] Pow[3][j i+1]$ 二维字符串$Hash$ 行与列分开考虑看下图即可 我们查找子矩阵 阅读全文
posted @ 2018-08-25 19:31 Ning_Mew 阅读(92) 评论(0) 推荐(0)
摘要:"题面戳我" Solution 我们分析题意,他要求的是两个字符串只有一个字符不同,然后我们再看长度$L \leq 200$,显然我们就可以把每一位删除后$Hash$,然后判断相同个数即可 我一开始脑子抽了,把所有的删掉的一个字符的剩余的串$Hash$放在一起然后计算答案,那样$Hash$值相同,串 阅读全文
posted @ 2018-08-25 19:31 Ning_Mew 阅读(299) 评论(0) 推荐(0)
摘要:"题面戳我" Solution 我们按照每个字母出现的位置进行$hash$,比如我们记录$a$的位置:我们就可以把位置表示为$0101000111$这种形式,然后进行字符串$hash$ 每次查询时,我们就把两个子串的每个字母的$hash$值,取出来,判断能否一一对应即可 ~~为啥我的常数那么大,27 阅读全文
posted @ 2018-07-23 21:13 Ning_Mew 阅读(252) 评论(0) 推荐(0)
摘要:"题面戳我" Solution 我们正着每次都要枚举从长到短,时间复杂度承受不了,但是我们可以发现一个规律,假设某次的答案为$x$,那么这个字符串为$A+X+B$组成,无论中间的$X$是重叠还是空余的,我们都可以发现,这个字符串可以改成$a+A'+X+B'+b$,所以下一次砍掉两边,这个$A'$中没 阅读全文
posted @ 2018-07-23 21:13 Ning_Mew 阅读(233) 评论(0) 推荐(0)