【题解】[HNOI2016]最小公倍数

[HNOI2016]最小公倍数

思维题。

考虑离线。然后判断 i , j i,j i,j 是否有通路,以及经过的边大小不超过 b b b ,经过了一条正好等于 a a a 的边。

考虑转化问题。本题实际上是求,在边 ( u , v ) (u,v) (u,v) 满足 a x ≤ a a_x\leq a axa b x ≤ b b_x\leq b bxb 的情况下, ( i , j ) (i,j) (i,j) 能否联通,且联通块内是否存在 a x = a a_x=a ax=a b x = b b_x=b bx=b 的边。

考虑分块。先给边按第一关键词排序,给边分块,再把同一块里的询问按第二关键词排序,再把当前块前面的点按照第二关键字排序,这样当前块前面的点都是符合当前询问点对于第一关建字条件的,而且第二关键字都是单调的,所以按块的顺序处理一下,然后对于每个询问,暴力处理一下当前块的贡献(注意此时第一关键字并不单调)。

对于相同块的部分,可以 BFS 处理。因为边的个数有限,所以时间复杂度是边的条数。

当块为 m l o g n \sqrt{mlogn} mlogn 时最优。


__EOF__

本文作者仰望星空的蚂蚁
本文链接https://www.cnblogs.com/cqbzly/p/17530356.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   仰望星空的蚂蚁  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示