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 @   HappyBobb  阅读(6)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示