专栏文章

比赛:CF2131 Div.3

题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miod9fz7
此快照首次捕获于
2025/12/02 17:19
3 个月前
此快照最后确认于
2025/12/02 17:19
3 个月前
查看原文

CF2131 Div.3

D. Arboris Contractio

缩成直径最小的时候就是菊花图。
考虑固定菊花图的中心,把该中心设为树根,那么每次操作 (s,t)(s,t) 时,ss 一定为根,tt 一定为叶子,答案就是以该点为根时,与根距离 >1>1 的叶子数量。考虑证明:
  • 假定这个不是答案,只是我们给树定义了一个权值。
  • 菊花图的权值为 00,不是菊花图的树权值一定 >0>0
  • 假设操作了一次 (s,t)(s,t)
    • ss 不为根,那么树权值一定不减。
    • ss 为根,但 tt 不为叶子,那么树的权值不变。
    • 否则 ss 为根,且 tt 为叶子,树的权值刚好减一。
  • 综上所述,树的最小操作次数就是该树的权值。
然后用简单换根 DP 即可 O(n)O(n) 解决。

E. Adjacent XOR

每个 ii 只能操作一次,也就是每个 ii 必须一步到位,那么只需考虑 ii 能从 i+1i+1 处取什么来异或。发现要么不取,要么取 bi+1b_{i+1},要么取 ai+1a_{i+1},因此 O(n)O(n) check 即可。

F. Unjust Binary Life

假设要走到 (x,y)(x,y),那么 a[1,x]a[1,x]b[1,y]b[1,y] 必须都变成同一个数。
因此记一下 a0(i),a1(i),b0(i),b1(i)a0(i),a1(i),b0(i),b1(i) 表示前缀 0,10,1 个数,答案就是 min(a0(x)+b0(y),a1(x)+b1(y))\min(a0(x)+b0(y),a1(x)+b1(y))
枚举 xx,考虑如何计算贡献。推一下式子:
a0(x)+b0(y)<a1(x)+b1(y)a0(x)a1(x)<b1(y)b0(x)\begin{aligned} a0(x)+b0(y)&<a1(x)+b1(y) \\ a0(x)-a1(x)&<b1(y)-b0(x) \end{aligned}
于是拿桶预处理一下即可。

G. Wafu!

f(i)f(i) 表示完全删掉 ii 需要多少步,f(1)=1f(1)=1f(i)=1+j=1i1f(j)f(i)=1+\sum\limits_{j=1}^{i-1} f(j),发现可以把值域缩小到 O(logk)O(\log k) 级别。
因此直接暴力模拟即可。复杂度大概是 O(nlogn+log2k)O(n\log n + \log^2 k)

H. Sea, You & copriMe

评论

0 条评论,欢迎与作者交流。

正在加载评论...