1 条题解

  • 0
    @ 2025-11-15 23:16:41

    本题要求为无向图的节点分配权值,使得黑边两端点权值和为1,红边两端点权值和为2,并最小化所有权值的绝对值之和。若无法满足条件则输出无解。

    思路分析

    • 将每条边的条件转化为关于相邻节点权值的线性方程。对于黑边 x+y=1x + y = 1,红边 x+y=2x + y = 2
    • 整个图转化为一个线性方程组。由于图可能不连通,需对每个连通分量独立求解。
    • 对每个连通分量进行DFS遍历,为每个节点设定一个参数化表达式 val=kx+bval = k \cdot x + b,其中 xx 是自由变量。DFS过程中传播关系,若遇到环则检查方程是否相容。
    • 若方程组无解(出现矛盾方程),则直接输出无解。
    • 若有解,则需选择自由变量 xx 的值以最小化所有权值的绝对值之和。问题转化为最小化 kix+bi\sum |k_i \cdot x + b_i|,即所有一次函数的绝对值之和。最优解取所有函数零点(即 bi/ki-b_i / k_i)的中位数。
    • 最终输出每个节点的权值,并保证精度要求。

    关键点

    • 通过DFS将节点权值表示为自由变量的线性函数。
    • 利用中位数性质最小化绝对值之和。
    • 处理多个连通分量时独立求解。
    • 1

    信息

    ID
    5330
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    25
    已通过
    1
    上传者