摘要: 【算法】二分+矩阵快速幂 【题意】给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k。 【题解】 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$$ 当n为偶数时,可以拆成两半,后一半由前一半集体乘A(n/2)得到,即: $$f_n=f_{\fr 阅读全文
posted @ 2017-08-28 22:00 ONION_CYC 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 【题意】求最长的出现至少k次的子串。 【算法】后缀数组+单调队列 【题解】求出所有LCP,然后SA上每k个找一个最小值,取所有最小值中的最大值。 移动区间最小值,显然可以用单调队列优化。 注意:队列左闭右开时,访问队尾一定要tail-1。 求LCP时,只能按字符串顺序求才满足O(n)的规律。 #in 阅读全文
posted @ 2017-08-28 20:46 ONION_CYC 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 【算法】字符串hash 【题解】 显然如果字母互不相同,贪心取是正确的。 如果存在字母相同,那么就换成比较后缀和前缀嘛。 但是要注意,不是后缀和前缀相同就能直接跳跃,每次必须只推一位。 取模的哈希比自然溢出慢了好多。 #include<cstdio> #include<algorithm> #inc 阅读全文
posted @ 2017-08-28 19:04 ONION_CYC 阅读(218) 评论(0) 推荐(0) 编辑