摘要:
因为上一篇博客园渲染变卡了 2.4 P3258 [JLOI2014]松鼠的新家 简单地差分一下dfs统计就好了。 P4041 [AHOI2014/JSOI2014]奇怪的计算器 比较有意思的题。如果把所有 \(x\) 排序一起全体操作会发现,这些操作不会改变 \(x\) 之间的相对大小关系,同时也就 阅读全文
摘要:
1.28 P4310 绝世好题 二进制小清新dp,$O(n\log n)$ CF618F Double Knapsack 神仙构造,大胆猜想,小心求证。 猜想一定存在两段连续的序列满足答案。 前缀和有 $n+1$ 项,尝试构造值域为 $n$ 以利用鸽巢定理。 $suma[i1]-suma[j1]=s 阅读全文
摘要:
摸一手线性基 由于线性代数没学好,所以就先不讲线性基的线代部分。 定义 线性基是从一个数集(大小为 \(N\))构造出的另一个数集(大小为 \(\log _2N\))。满足线性基中的元素任意异或起来和原数集中元素任意异或起来,两者值域相同。个人理解在异或运算下,线性基是原数集的简化。 比如对于一个数 阅读全文
摘要:
链接 P2408 题意 给你一个长为 \(n\) 的字符串 \(S\),求本质不同的子串的个数。 分析 这是一个经典字符串问题。我们难以用 kmp 或 ac 自动机来做,所以只能考虑把 \(S\) 的 SA 跑出来。 这样任意一个子串都是 \(S\) 某一个后缀的一个前缀,由于有 \(ht\) 这样 阅读全文
摘要:
链接 P4248 P3181 把这两道题放在一起是要讨论这样一个问题 对于一个已知 \(ht\) 的 \(S\),\(O(n)\) 求 \(\sum\limits_{1\le i<j\le n} lcp(i,j)\) 首先我们可以把上式写成 \(\sum\limits_{1\le i\le j}\s 阅读全文
摘要:
链接 P4094 题意 给出一个长为 \(n\) 的字符串 \(S\)。\(m\) 次询问,每次询问给出 \(a,b,c,d\),求出 \(S_{a\sim b}\) 的所有子串与 \(S_{c\sim d}\) 的最大 LCP。 \(n,m\le 1\times 10^5,a\le b,c\le 阅读全文
摘要:
链接 P2178 题意 给出一个长为 \(n(n\le3\times 10^5)\) 的字符串 \(S\),和 \(S\) 每个位置的权值 \(a_i(|a_i|\le 1\times 10^9)\),需要统计: 对于长度 \(x\in[0,n-1]\),统计选择任意两个 \(S\) 的后缀其 LC 阅读全文
摘要:
刚学Z算法1ms,把上次听课写的抄过来了 Z-algorithm Z算法是用来 \(O(n)\) 求文本串 \(S\) 的每个后缀与 \(T\) 的最长公共前缀。 暴力做法是从每个点开始暴力往后匹配。时间复杂度 \(O(n^2)\),让我们考虑像 kmp 和 manacher 一样进行优化。 从左往 阅读全文
摘要:
后缀数组 后缀排序 对于一个字符串 \(S\),将它的所有后缀按字典序从小到大排序,没有字符的位置默认字典序最小。如上图右侧就是排序后的后缀。 我们把 \(S_{i\sim n}\) 叫做 \(S\) 的第 \(i\) 个后缀。 数组 \(rk[i]\) 是 \(S\) 的第 \(i\) 个后缀在排 阅读全文
摘要:
Z算法其实和kmp很像,kmp是从 \(i\) 往前的最长前缀匹配,Z是从 \(i\) 往后的最长前缀匹配,所以建议做邪王真串一次性复习两个匹配算法 Z-algorithm 与循环节 [NOIP2020] 字符串匹配 中用到了Z算法求某个前缀的最长循环次数,大概是这样: 原 \(S\) 串上红蓝段匹 阅读全文