【题单】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\)

posted @ 2026-07-29 18:18  TallBanana  阅读(5)  评论(0)    收藏  举报