P8207 [THUPC2022 初赛] 最小公倍树

题意

给定 l,rl, r,有一张无向完全图 G=(V,E)G=(V,E),其中 V={l,l+1,,r}V=\{l,l+1,\cdots,r\}。两点 u,vu,v 之间有边,边权为 lcm(u,v)\operatorname{lcm}(u,v)。求这张图的最小生成树。

1lr1061 \leq l \leq r \leq 10^6

做法

考虑暴力建边,设 n=rl+1n = r - l + 1,则复杂度 O(n2logn2)O(n^2 \log n^2),显然复杂度不对。

考虑 lcm(u,v)=uvgcd(u,v)\operatorname{lcm}(u,v) = \dfrac{u \cdot v}{\gcd(u,v)},可以枚举 gcd(u,v)\gcd(u,v)

假设当前枚举到的公因数为 ii,设 pip_il\geq l 且最小的是 ii 的倍数的数。那么可以将 pip_ipi+i,pi+2i,pi+3i,p_i + i, p_i + 2i, p_i + 3i, \cdots 连边,直到 p+ki>rp+ki > r 时停止。

时间复杂度 O(nlog2nO(n \log^2 n)。

posted @ 2022-08-07 10:51  HappyBobb  阅读(15)  评论(0)    收藏  举报  来源