随笔分类 - 字符串——hash
摘要:题面:洛谷 题解: 我们暴力维护当前所有队伍内的所有子串(长度k = 1 ~ 50)的出现次数。 把每个子串都用一个hash值来表示,每次改变队伍形态都用双向链表维护,并暴力更新出现次数。 现在考虑复杂度。 如果只有连接,没有断开,那么复杂度为不同的子串个数:50n(注意只要O(n)预处理前缀和后缀
阅读全文
摘要:题面:洛谷 题解: 做法。。。。非常暴力。 因为要求的编辑距离最多只有1,所以我们直接枚举对那个位置(字符)进行操作,进行什么样的操作,加入/修改/删除哪个字符,然后暴力枚举hash判断即可, 1 #include<bits/stdc++.h> 2 using namespace std; 3 #d
阅读全文
摘要:题面: 洛谷 题解: 首先我们需要知道一个性质,串s的最小循环节 = len - next[len].其中next[len]表示串s的一个最长长度使得s[1] ~ s[next[len]] == s[len - next[len] + 1] ~ s[len](详细定义参见KMP) 至于为什么是成立的
阅读全文
摘要:~~~题面~~~ 题解: 通过观察可以发现,其实题目就是要求长度相等的字符串中有且只有1位字符不同的 ”字符串对“ 有多少。 因为数据范围不大, 所以考虑一种暴力至极的方法。 我们枚举是哪一位不同,然后通过hash验证,同时为了加速,我们先求出每一个字符串的前缀hash数组和后缀hash数组, 如果
阅读全文

浙公网安备 33010602011771号