【题解】[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 时最优。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值