并查集——连通块

简单

P1525 关押罪犯

传送门
题意:有 n 个罪犯和 m 个关系,罪犯和罪犯间的关系由一个权值表示,这个表示两个罪犯会造成的事故级别,现在有两个监狱,如果两个罪犯放在一个监狱里就会爆发冲突造成事故,现在分配罪犯,使造成的最大事故级别尽可能的小。n <= 1e4
做法:两个监狱,感觉好像是二分图匹配,但是真当二分图看比较抽象而且数据不允许,所以考虑优化方法,首先按照事故从大到小排序,那么我们可以得知,越靠前的两个人越不能放在同一个监狱里,那我们为每个人树立一个不共戴天的仇敌,每个人只有一个仇敌,这两人不能放在同一个监狱中,排完序后我们发现每个人的仇敌是他遇到的第一个人,遇到的第一个人肯定是要放到不同监狱的,因为排序的问题,循环时遇到的其他人也要放到仇敌的监狱里,除非已经在自己监狱内,此时直接输出就行。总结一下,遇到的第一个为仇敌,其他的遇到的人需要和仇敌合并,当其他人已经和自己是一个集合里时,就已知答案了

中等

P4185 MooTube G

传送门
题意:给定一个有边权的树,q 次询问,每次询问输入两个值 k 和 u,问有几个点到 u 的相关值 >= k,相关值是点和点路径中最小的值。(n,q <= 1e5)
做法:对于每个询问,可以发现,边权 < k 时不需要考虑这条边,询问次数太多,不可能每次询问内都找 < k 的边,所以离线处理,离线后对 k 排序,对边权排序,此时双指针合并连通块,答案就是 u 所在的连通块

较难

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值