【题单】PPP xcy

QOJ11112 Qingyu's Little Training Center / 小青鱼的训练中心

考虑到达理论下界。
按照循环位移意义下相同的串分成一个等价类,每次选择一个等价类全部加入,容易发现最后 \(m<n\)
选择 \(k\) 个 1 都是连续的一个等价类,加入其中的 \(m\) 个即可。

QOJ9560 审判

大部分情况都是合法的,所以只要找出不合法的:

  • 多个连通块是容易判定的。
  • 图是一条链,有颜色多次切换。
  • 去掉一种颜色的王城,存在另一种颜色和他的王城不连通。
  • 红蓝相间。

QOJ17763 Sum and Product

\(k(a+b)\equiv ab \pmod n\Rightarrow ab-k(a+b) +k^2\equiv k^2\pmod n\Rightarrow (a-k)(b-k)\equiv k^2\pmod n\),也就是 \(a'b'\equiv k^2\pmod n\)

\(\color{Red}\mathtt{\Gamma}\)

QOJ10905 开司!

CF908H New Year and Boolean Bridges

AND:强连通。
OR:在同一个连通块内。
XOR:不在同一个强连通内,在一个连通块内。

先缩强连通块,然后合并 OR 和 XOR 的限制,显然 XOR 限制更强。
然后显然大小大于等于 2 的强连通块越多越好,这样连边最少。
那么可以跑最小团划分,OR 卷积 \(O(2^{m}m)\) 做。
其中 \(m=\frac{n}{2}\)

AT_arc160_f [ARC160F] Count Sorted Arrays

考虑对于每个 \([a_i\le v]\) 转 01 序列,计数合法的 01 序列路径,其中每个节点代表的 01 序列都需要可以最后被排序。
那么逆序对不会增加。只有 \(O(n^2)\) 次是有效的。
每次重新跑可达性计数即可。
复杂度 \(O(2^nn^3+m)\)

QOJ17760 Telepathy

考虑一个数出现/不出现当作 (/)。
那么跑括号匹配,然后找到最大的没匹配的右括号,把他变成左括号。
此时 B 做括号匹配,返回栈底的左括号。

CF1806F2 GCD Master (hard version)

  • \(k=1\):找到 \(\min a_i+a_j-\gcd(a_i,a_j)\)
    假设 \(a_i< a_j\),那么 \(g\le a_j-a_i\),故有一个下界是 \(2a_i\)。所以我们先不考虑相同的数。

由于有 \(2a_i\) 的下界,所以如果两个数如果都不是最小值,那么把较大的替换为最小值一定不劣。
然后是 \(k>1\),考虑证明如果不是选择 \(k+1\) 个数合成一起,而是分成至少两组,哪个更优。
\(g\ge h\) 分别是两组的 \(\gcd\)\(g\) 组的最大值是 \(x\)。去除 \(x\) 的贡献 \(\ge x+\gcd(g,h)\ge x\ge 2g\ge g+h\),所以一定更优。那么一定是选择 \(k+1\) 个数合到一起。

现在考虑使用没合过的数中的最小值 \(y\) 替换当前选择的最大值 \(x\),会减少至少 \(x-y-g+\gcd(g,y)\) 的代价。
\(v\) 是一个不为 \(x\) 的在当前选择数集合内的值,则有 \(x-v\ge g\),取 \(v\) 是集合内次大值,若 \(y\le v\),有 \(x-y-g+\gcd(g,y)\ge v-y+\gcd(g,y)> \gcd(g,y)>0\),所以只要次大值之前还有数没选就可以替换最大值。
这等价于,我们会选择前 \(k\) 小的数,然后再选择一个数作为剩下那个值。这可以在 \(O(n\log V)\) 时间复杂度内处理。

把相同的数添加回来,如果我们要消除一个数,最小的影响就是合并到相同的数上。
考虑求出 \(1\le k'\le k\) 的所有 \(k'\) 的答案,注意到前缀 \(\gcd\) 只会变化 \(O(\log V)\) 次,所以可以在 \(O(n\log ^2V)\) 内处理。

posted @ 2026-06-03 13:59  TallBanana  阅读(12)  评论(0)    收藏  举报