09 2024 档案
P9192 Pareidolia 题解
摘要:Statement 给串 ,定义 为 删一些字符后能出现最多多少个 bessie, 表示对 的所有子串 求 的和,有 次单点修改,每次改完输出 . Solution 动态 d
P3703 树点涂色 题解
摘要:Statement 树,每个点有一个颜色,初始每个点颜色互不相同 到根链涂上新颜色 链颜色数 子树内点 到根路径的最多颜色数 Solution 首先,相同颜色的点一定构成一条从下往上的链 考虑 LCT,维护一个性质:一条实链的点的颜色相同. 于是 到根的颜色数 \
P6292 区间本质不同子串个数
摘要:Solution 与“区间本质不同回文子串个数”类似,但没有等差数列那样优美的性质了……下面是一个更通用的做法。 考虑移动一次右端点 ,就相当于把 parent 树上一条到根链的 last endpos 设为 . 把这个看成 access 操作. 考虑用 LCT 维护 paren
P6240
摘要:题面稍微有一点不一样。 Statement 给 个物品,每个物品有价值 、体积 。 次询问,问考虑 区间的物品,用容量为 的背包最多能装多少价值的物品,有多少种方案,每个物品只能被装一次。 \(n\le 2\cdo
BZOJ 4932 = BZOJ 9434 = LOJ 6070 基因
摘要:Statement 问区间本质不同回文串数,强制在线,. 其实还有个四倍经验:BZOJ 5384. Solution 1 考虑一个结论: 的所有回文后缀按长度排序后,可以划分为 段等差数列。 考虑离线怎么做:移动右端点 ,新增
BZOJ 4545 DQS 的 trie 题解
摘要:Statement 维护一棵树,边权 ,根为 ,定义这棵树的子串为从 走到所有点构成的字符串的所有后缀,需要支持以下操作: 问当前树的本质不同子串数 给一个点添加一棵子树 问一个串在当前树中作为子串
BZOJ 4310 跳蚤 题解
摘要:Statement 把 分成不超过 段,使每段的最大子串中的最大串最小。输出这个串。 Solution 按排名二分这个串,check 中从右往左贪心地划分,需要实现 比较两个子串大小。 #include <bits/stdc++.h> using names
BZOJ 3277 串 题解
摘要:Statement 给 个串,问每个串有多少子串是所有 个串中至少 个串的子串。 Solution 1 对于每个后缀,二分他最右的满足条件的前缀,这就是他贡献多少次。 设二分的 ,可以二分找出 height 上左边、右边第一个 他的位置 同样
BZOJ 2555 = P5212 SubString 题解
摘要:Statement 给你一个字符串 ,要求你支持两个操作: 在当前字符串的后面插入一个字符串; 询问字符串 在当前字符串中出现了几次?(作为连续子串) 你必须在线支持这些操作。 Solution extend 中 link[cur] = q,相当于 link
最长公共子串 题解
摘要:Statement Q7.1.2.4,时限 4s 给一个串,定义 为最长公共子串长度, 次询问,每次给出 ,求 \[ \operatorname{xor}_{i=1}^{r-l+1}\{i+\mathrm{LCS}(S[l,l+i-1],S[
H7.1.4.1. 最短不公共子串
摘要:Statement 给两个串 ,其中 ,计算: 的最短子串,他不是 的子串 的最短子串,他不是 的子序列 的最短子序列,他不是 的子串 的最短子序列,他不是 \(B\
H7.1.4.2. 重复旋律
摘要:Statement 给若干串,字符集为 ,这些串中每个本质不同的子串给答案贡献他代表的整数这么多,求答案模 。 Solution 建广义 SAM,对于一个等价类 ,记录一个包含该等价类的串的编号,并记录任意一个 位
双子串最大异或 题解
摘要:Statement 求 \[ \max_{1\le l_1\le r_1<l_2\le r_2\le n}\{(A_{l_1}\oplus A_{l_1+1}\oplus\cdots\oplus A_{r_1})+(A_{l_2}\oplus A_{l_2+1}\oplus\cdots\oplus
广义 SAM
摘要:先让 SAM 的 extend 函数返回 cur 简单来说,就是先建 Trie 再 BFS 地插入 SAM,其中 last 为 trie 上 u 的父亲。 以上是离线构建,在线如何构建? 每次先把 last 设为 0,然后在普通 SAM 上加 3 个特判: 最开始: if (nxt[last][c]
tricks
摘要:也叫 Tricks 对 做 次前缀和,下标从 0 开始,则 为 证明:杨辉三角 对于算这种 \(\displaystyle\sum_{i\in[l_k..r_k]}\
KMP, Manacher, SA 存在的意义
摘要:Statement 今天有人问我: KMP 有 AC 自动机可以替代他 Manacher 有回文自动机可以替代他 SA 有 SAM 可以计算他 他们有什么存在的意义? Solution KMP,Manacher,SA 复杂度与字符集大小无关 写起来方便 对于 SA,他本身的功能就是 SAM 不可完全
HDU 5350 MZL's munhaff function 题解
摘要:Statement 给长度为 的单调不上升序列 , 为 的后缀和。你最开始在 ,要花费最小的代价跳到 。当你在 时有两种选项:不花费任何代价跳到 ,或是花费
BZOJ 4502 串 题解
摘要:妙妙数数题 key:数数题通常是,对于特定形式的计数,就盯着这个模式观察,看出一些充要条件、计数形式的转化,然后想办法维护。 优化的本质就是把难算的变成好算的,把不好一起统计的(只能一个个数的)以某种角度、用某些数据结构,一起统计(多个多个数)。 我觉得难点通常在于“盯出一些充要条件”,这也是他的主
BZOJ 4231 回忆树
摘要:以下为自己口胡,未经网上搜索题解验证 Statement 一棵 个点的树,每条边有一个小写字母边权, 次询问,每次给定 ,问字符串 在 路径组成的字符串中出现了几次。\(n,m\le 10^5,\sum|s|\le 3\cdo
BZOJ 3796 Mushroom追妹纸 题解
摘要:Statement 给 ,求最长的 的长度,满足 是 子串 是 子串 不是 子串 Solution 1 以下是我没看题解瞎胡的 首先一个弱智想法是,枚举 上