CF2136 Codeforces Round 1046 (Div. 2) 补题

题目标签

  • B
    • 笛卡尔树的应用
  • C
    • 有思维难度的 dp / 递推
  • D
    • 交互题
    • 利用曼哈顿距离反过来解坐标:二元线性方程组
    • 考虑“问最值/极限情况”
  • E
    • 二分图,边双连通分量
    • 两条路径 -> 环
    • 异或运算的性质
    • (见题解)

题解:E. By the Assignment

  • 观察1:对于本题,每个边双连通分量内部的点权可以独立决定
  • 观察2:对于一个环,环上的点权两两相等
    • 对于点 \(v_1, v_2, \cdots v_l\) 构成的环,考虑 \(v_i, v_j( i\neq j)\) 之间的路径,则有 \(\bigoplus_{k \neq i, j} v_k = 0\)
    • 考虑 \(i, j_1, j_2\) 则有 \(0 = \left(\bigoplus_{k \neq i, j_1} v_k\right) \oplus \left(\bigoplus_{k \neq i, j_2} v_k\right) = v_{j_1} \oplus v_{j_2}\)
    • 于是得到 \(v_{j_1} = v_{j_2}\),进而环上所有点权都必须相等
  • 观察3:在观察2 的基础上,如果环为奇环,则所有点权都必须为 0

基于以上观察,我们设计出如下算法:

  • 单独处理每一个边双连通分量
  • 统计边双内是否存在奇环,若存在,直接检查是否能所有点涂成 0;若不存在奇环,则检查是否能将所有点涂成同一颜色、以及方案数

容易验证这样涂色之后的图是符合题目要求的

My Submission

posted @ 2025-09-16 21:50  zhongyuwei  阅读(22)  评论(0)    收藏  举报