首页 > [NOIP2010]关押罪犯
头像 白给怪
发表于 2020-06-03 15:49:48
题目链接:https://ac.nowcoder.com/acm/problem/16591分析:因为市长只看最大影响力,所以我们将影响力从大到小排序,尽可能的去将会发生大影响的冲突避免(即将两个人分到两个监狱里面)下面解释一句话,敌人的敌人是朋友————假如 a和b会产生冲突,由于我们是将数组按照 展开全文
头像 DaMing
发表于 2020-06-02 10:51:49
题目描述S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同 展开全文
头像 弓长九日
发表于 2019-08-19 10:38:57
带权并查集+二分图解法 带权并查集 分析A,B之间的相对距离,可以得到rnk[fa] = rnk[A]+x-rnk[B]。 注意到这时,对于原来的A的树,只更新了fa跟结点的权值, 那么其它结点的更新在查找的那一步里面实行了。维护是相对距离 一开始 ab之间关系 a到b是s 在 fa fb 不一样 展开全文
头像 savage
发表于 2019-09-06 16:30:10
算法知识点:二分,染色法判断二分图 复杂度: 解题思路: 将罪犯当做点,罪犯之间的仇恨关系当做点与点之间的无向边,边的权重是罪犯之间的仇恨值。 那么原问题变成:将所有点分成两组,使得各组内边的权重的最大值尽可能小。 我们在之间枚举最大边权 ,当 固定之后,剩下的问题就是: 展开全文
头像 菜鸡aaa
发表于 2023-08-05 17:57:39
借鉴了别人的题解加上自己的理解 1、只有两座监狱,所以两个罪犯要么在同一个监狱要么在不同监狱 2、将影响力从大到小排序,从大到小枚举每个冲突,尽可能的让冲突避免(即将两个人分到不同监狱),直到出现无法避免冲突的情况,因为已经将冲突由大到小排序,之后的冲突都比这个冲突小,所以该冲突就是答案要求的。 3 展开全文
头像 Eihuvita.
发表于 2020-11-30 21:57:01
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押 展开全文
头像 sunny_forever
发表于 2021-08-06 12:10:47
思路 M 对互相仇恨的罪犯,我们按仇恨值从大到小排序,对于每一对互相仇恨的罪犯,我们要设法将他们分配在不同的监狱里,反正不能在同一监狱里 如果不可避免的在同一监狱了 也就是与我们的策略发生冲突了,那么此时的仇恨值就是答案 如果到最后都不曾发生冲突,那么答案是 0,因为此时:任意一对会冲突的罪犯 都 展开全文
头像 菜狗林末
发表于 2022-07-19 10:14:07
原题戳这里 关于这道题,本菜狗在阅读各位大佬的题解后终于大彻大悟,顺利ac,在此先感谢各位大佬的题解。 根据题目要求,我们需要将囚犯产生的冲突的影响力的最大值降到最小,这里有那么点贪心和二分答案的味道。这道题的标签是并查集,那么该如何使用并查集求解呢? 我们首先将冲突的情况保存在结构体数组里,并将其 展开全文
头像 -符拉迪沃斯托克-
发表于 2021-01-20 23:14:24
这是一道思路清奇的题。 关键就是:我敌人的敌人是我的朋友 所以当我和我敌人的敌人要发生冲突时,这个冲突不可避免。 因此把敌人关系按怨气值倒序排序,顺序扫一遍,发现不可避免的冲突就跳出循环,输出这对敌人得怨气值。 可以证明这个怨气值一定是最小的最大值。 附代码: #include<iostrea 展开全文
头像 louhc
发表于 2019-08-24 06:50:45
思路 这题可以用并查集或二分+二分图染色解决.首先二分答案,然后只要判断是否能将罪犯分成两个图,图的内部边权都不超过答案. 并查集 这样子可以直接使用并查集的边带权或者扩展域解决.对边从小到大排序.边带权的话,边权可以是两点是否相同,合并时如果有冲突判断就输出答案.扩展域的话也就是每个罪犯拆成两个点 展开全文