1 条题解

  • 0
    @ 2026-4-4 18:04:05

    CF2077G RGB Walking 题解

    题意简述

    给定一张 nn 个点、mm 条边的连通无向图,每条边有权值 wiw_iwixw_i \le x)和颜色(红/绿/蓝),保证每种颜色至少存在一条边。

    我们可以走可重复经过点和边的路径,从 11 号点走到 nn 号点。设路径中红、绿、蓝边的权值和为 sr,sg,sbs_r,s_g,s_b

    max(sr,sg,sb)min(sr,sg,sb)\max(s_r,s_g,s_b) - \min(s_r,s_g,s_b) 的最小可能值。

    数据范围:4n,m,x2×1054 \le n,m,x \le 2 \times 10^5


    解法

    tit_i 表示第 ii 条边经过的次数。

    首先有一个显然的结论:可以把每个 tit_i 调整成一个很大的偶数,使得当前 max(sr,sg,sb)min(sr,sg,sb)=0\max(s_r,s_g,s_b)-\min(s_r,s_g,s_b)=0,之后只需要满足度数奇偶性限制,就能构造出合法路径。

    单独对一种颜色考虑:对于一条边 ii,令 titi+2t_i \leftarrow t_i+2,对应的行走方案依然合法,也就是说该颜色的权值和可以任意增加 2wi2\cdot w_i

    gg 为该颜色所有边权的 gcd\gcd,那么如果 ss 是一个可实现的权值和,则 s+2gs+2g 也一定可实现。

    因此我们只需要关心 summod2gsum \bmod 2g 的值。又因为每条 wiw_i 都是 gg 的倍数,所以余数只有两种可能,可以用 BFS 求出。

    把三种颜色放在一起考虑,用一个大小为 88 的状态将余数压缩,再跑一次 BFS,就能得到三个颜色同时合法的余数组合。

    现在问题转化为:给定三个同余方程

    xiri(modMi)x_i \equiv r_i \pmod{M_i}

    max{xi}min{xi}\max\{x_i\}-\min\{x_i\} 的最小值。

    一个朴素思路是枚举任意一个 xix_i,另外两个都只有 O(1)O(1) 种可能取值,但暴力做复杂度为 O(V2)O(V^2)

    注意到对某个 MiM_i,如果它含有一个质因子 pp,而另外两个模数都不含 pp,那么可以把这个 pp 去掉,即令:

    $$M_0 \leftarrow \gcd(M_0,\operatorname{lcm}(M_1,M_2)) $$

    原因是:操作之后若存在满足条件的 xx,每次将 xx 加上 lcm(M1,M2)\operatorname{lcm}(M_1,M_2),一共加 $\dfrac{\operatorname{lcm}(M_0,M_1,M_2)}{\operatorname{lcm}(M_1,M_2)}$ 轮,一定存在某一轮满足原限制。

    操作后可以设

    M0=gab,  M1=gac,  M2=gbcM_0=gab,\;M_1=gac,\;M_2=gbc

    其中 a,b,ca,b,c 两两互质。再用朴素做法,只需要枚举

    $$\frac{\operatorname{lcm}(M_0,M_1,M_2)}{\max\{M_0,M_1,M_2\}} $$

    次,也就是 min{a,b,c}\min\{a,b,c\} 次。 由于 ab,ac,bcxab,ac,bc\le x,所以 min{a,b,c}x\min\{a,b,c\}\le \sqrt x,总复杂度降为 O(x)O(x)


    时间复杂度

    O(n+mlogx+x)O(n + m\log x + x)

    • 1

    信息

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