【题单】wmr & wsx 第七次讲题
P15060 过河卒
如果车的位置不是单调的,那么一定可以穿过去。
如果有相邻两行放了车,那么他们一定在相邻两列。
相邻两列也是同理。
CF1446D2 Frequency Problem (Hard Version)
整个序列有 2 个以上的众数就返回 n。
否则考虑区间众数一定有一个取了全局众数。如果没有可以不断拓展区间直到全局众数成为区间众数,得到一个更大的区间。
现在考虑根号分治:
- 出现次数 \(> \sqrt n\):直接枚举他作为区间众数,然后找到一个区间和是 0 的最大区间。
- 出现次数 \(\le \sqrt n\):枚举这个数的每个出现次数,然后枚举全局众数对应的出现次数。
CF1975G Zimpha Fan Club
- 没有
*:红题。 - 两个串都有
*:先把没有*的前后缀匹配一下,然后发现一定可以匹配完。 - 只有一个串有
*:还是先把前后缀丢掉,现在变成按照*分割 \(s\),每次你要对于每段找到 \(t\) 中一个最早的出现位置,然后删掉 \(t\) 的一个前缀。
暴力做可以使用 ntt 进行匹配处理。
优化就是倍增 \(len\),每次拉出 \(t\) 的 \(len\) 长度前缀进行匹配,这样花费常数倍代价删除了一段前缀,时间复杂度 \(O(n\log n)\)。
NTT 模数 \(469762049\),原根 \(3\),\(3^{-1}=156587350\)。
浙公网安备 33010602011771号