打击犯罪专题

打击犯罪(black)

线上OJ: 一本通:1386:打击犯罪(black) 核心思想: 1、如果按照题意,从1~k的顺序进行删除(枚举),则每次枚举完都要重置并查集,比较麻烦。 2、考虑逆向思维, 不从1 ~ k 顺序删除,而是从 n ~ k 逆序往图中添加。 a. 如果添加到 k 时,最大集合的元素数量不超过 n/2 ,则说明k还可以继续减小 b. 如果添加到 k 时,最大集合的元素数量开始超过 n

打击犯罪【并查集】

打击犯罪 题目大意: 有n个人,相互之间有一些关系,从而形成一个图,现在要从 1 … … n 1……n 1……n按顺序去掉k个人(即去掉 1 … … k 1……k 1……k),使最大的子图的点数 < n / 2 <n/2 <n/2,求k的最小值 原题: 题目描述 某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,

SSL2342 打击犯罪【并查集】

这道题思路很巧妙。 我们先假设所有的犯罪团伙都被打击掉了, 那么此时我们重新从 n − > 1 n->1 n−>1 复活犯罪团伙(也就是将它们并在一起)。 当我们发现无论怎么并,犯罪团伙的危险程度都 > n / 2 >n/2 >n/2时,就停止并操作。 此时我们直接输出 i i i 即可。( i i i 为当前被打击掉的团伙) 代码: #include<iostream>#inclu

1386:打击犯罪(black)(并查集)

【题目描述】 某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个庞大的犯罪集团,犯罪集团的危险程度由集团内的犯罪团伙数量唯一确定,而与单个犯罪团伙的危险程度无关(该犯罪集团的危险程度为n)。现在当地警方希望花尽量少的时间(即打击掉尽量少的团伙),使得庞大的犯