摘要:
原题链接 考察:字符串hash+二分 这道题和前面的查找子串的题一样用到二分,答案都具有单调性,但这道题的单调性不是上道题那么明显.本道题不是简单地枚举端点,如果枚举端点当然没有单调性,本道题是用中心扩展思想(不是第一次学,但我完全不记得).选取一个端点为中心,扩散到两边看是否为回文串.因为这道题是 阅读全文
摘要:
原题链接 考察:STL 用STL去重即可,输入非常毒,存在空白字符串,我们要用getline输入,否则字符串会读到m和n的数字 1 #include <bits/stdc++.h> 2 using namespace std; 3 set<string> st; 4 vector<string> a 阅读全文
摘要:
原题链接 考察:hash+前缀和 做完这道题感觉终于懂一点hash了,散列表hash是将值存储在映射的键里,会有不同值映射到相同键,因此必须要处理冲突 这道题牛二进制的前缀和会根据ash函数映射到相同键,这些前缀和有些和答案要求根本不符,所以我们必须筛掉那些不符合的键,也就是说这道题我们不能仅仅存储 阅读全文
摘要:
原题链接 考察:hash+字符串的最大最小表示法 通过这道题发现之前的最小最大表示法可以从1开始还不用写三元表达式,就是之前的断环成链思想,这种取余的又要下标从1开始还是断环成链比较方便 关于这道题写写对于hash的思考 字符串hash多用于已知长度的字符串,下标是字符串的下标,hash值不允许为0 阅读全文
摘要:
原题链接 考察:字符串匹配+hash优化+二分 错误思路: KMP算法是用于看一个串是否为另一个串的子串,这道题如果枚举子串,每个都求next数组再匹配时间复杂度是O(n^2) 求公共子串长度最好不要用KMP 正确思路: hash算法同样是枚举给定长度的字符串,但是hash不用求next数组,利用预 阅读全文