简单
P1525 关押罪犯
传送门
题意:有 n 个罪犯和 m 个关系,罪犯和罪犯间的关系由一个权值表示,这个表示两个罪犯会造成的事故级别,现在有两个监狱,如果两个罪犯放在一个监狱里就会爆发冲突造成事故,现在分配罪犯,使造成的最大事故级别尽可能的小。n <= 1e4
做法:两个监狱,感觉好像是二分图匹配,但是真当二分图看比较抽象而且数据不允许,所以考虑优化方法,首先按照事故从大到小排序,那么我们可以得知,越靠前的两个人越不能放在同一个监狱里,那我们为每个人树立一个不共戴天的仇敌,每个人只有一个仇敌,这两人不能放在同一个监狱中,排完序后我们发现每个人的仇敌是他遇到的第一个人,遇到的第一个人肯定是要放到不同监狱的,因为排序的问题,循环时遇到的其他人也要放到仇敌的监狱里,除非已经在自己监狱内,此时直接输出就行。总结一下,遇到的第一个为仇敌,其他的遇到的人需要和仇敌合并,当其他人已经和自己是一个集合里时,就已知答案了
中等
P4185 MooTube G
传送门
题意:给定一个有边权的树,q 次询问,每次询问输入两个值 k 和 u,问有几个点到 u 的相关值 >= k,相关值是点和点路径中最小的值。(n,q <= 1e5)
做法:对于每个询问,可以发现,边权 < k 时不需要考虑这条边,询问次数太多,不可能每次询问内都找 < k 的边,所以离线处理,离线后对 k 排序,对边权排序,此时双指针合并连通块,答案就是 u 所在的连通块