传送门

Description

Input

Output

Sample Input


Sample Output


Hint

Solution

  非常显然的并查集题目,在本题中,对于每个罪犯i,维护两个信息:必须要和他关在一起的罪犯的集合,以及和他有仇的罪犯的集合,由于监狱只有两个,所以和他有仇的罪犯一定被关在同一个集合里面。sort一遍贪心从上到下扫描。对于不得不管起来的两个有仇的人即为答案。

Code

#include<cstdio>
#include<algorithm>
namespace read{
void imop(int&x){
char ch=getchar();
while(ch<''||ch>'') ch=getchar();
while(ch>=''&&ch<='') x=x*+ch-'', ch=getchar();
return;
}
void op(int&x){
char ch=getchar();
int f=;
while(ch<''||ch>''){
if(ch=='-') f=-;
ch=getchar();
}
while(ch>=''&&ch<='') x=x*+ch-'', ch=getchar();
x*=f;
return;
}
}
namespace fusu{
const int maxn = , maxm = ;
struct Crim{
int a,b,value;
};
Crim criminal[maxm];
int n,m;
inline bool cmp(Crim a,Crim b){return a.value<b.value;}
int frog[maxn],enemy[maxn];
inline int find(int x){
if(frog[x]^x) frog[x]=find(frog[x]);
return frog[x];
}
void gather(int a,int b){
int fa=find(frog[a]),fb=find(frog[b]);
frog[fa]=fb;
return;
}
void beginning(){
for(int i=;i<=n;++i)
frog[i]=i;
return;
}
int doit(){
read::imop(n);read::imop(m);
for(int i=;i<=m;++i){
read::imop(criminal[i].a);
read::imop(criminal[i].b);
read::imop(criminal[i].value);
}
std::sort(criminal+,criminal++m,cmp);
beginning();
do{
int fa=find(frog[criminal[m].a]),fb=find(frog[criminal[m].b]);
if(!(fa^fb)){
printf("%d\n",criminal[m].value);
return ;
}
if(!enemy[criminal[m].a]) enemy[criminal[m].a]=criminal[m].b;
else gather(enemy[criminal[m].a],criminal[m].b);
if(!enemy[criminal[m].b]) enemy[criminal[m].b]=criminal[m].a;
else gather(enemy[criminal[m].b],criminal[m].a);
--m;
}while(m);
printf("0\n");
return ;
}
}
int main(){
return fusu::doit();
}

Summary

对于并查集中的补集法,对于每个个体记录多个信息,在合并时合并多个信息即可。

【并查集】【P1525】关押罪犯的更多相关文章

  1. 【并查集】关押罪犯(BSOJ2809)

    Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨 气值”(一个正整 ...

  2. 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]

    P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...

  3. 洛谷 P1525 关押罪犯

    题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...

  4. 洛谷P1525 关押罪犯(并查集、二分图判定)

    本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...

  5. P1525 关押罪犯[扩展域并查集]

    题目来源:洛谷 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整 ...

  6. 洛谷P1525关押罪犯——并查集

    题目:https://www.luogu.org/problemnew/show/P1525 并查集+贪心,从大到小排序,将二人分在不同房间,找到第一个不满足的即为答案. 代码如下: #include ...

  7. 洛谷 P1525 关押罪犯 NOIp2010提高组 (贪心+并查集)

    题目链接:https://www.luogu.org/problemnew/show/P1525 题目分析 通过分析,我们可以知道,这道题的抽象意义就是把一个带边权的无向图,分成两个点集,使得两个集合 ...

  8. 洛谷 P1525 关押罪犯 (贪心,扩展域并查集)

    题意:有\(n\)个罪犯,\(m\)对罪犯之间有仇,现在将这些罪犯分到两个监狱里去,问两个监狱里有仇罪犯之间的最大权值最小为多少. 题解:先按边权从大到小排序,然后贪心,边权大的两个罪犯,我们一定要先 ...

  9. 洛谷 P1525 关押罪犯 & [NOIP2010提高组](贪心,种类并查集)

    传送门 解题思路 很显然,为了让最大值最小,肯定就是从大到小枚举,让他们分在两个监狱中,第一个不符合的就是答案. 怎样判断是否在一个监狱中呢? 很显然,就是用种类并查集. 种类并查集的讲解——团伙(很 ...

  10. [NOIP2010] 提高组 洛谷P1525 关押罪犯

    刚才做并查集想到了这道以前做的题,干脆一并放上来 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可 ...

随机推荐

  1. 监控系统cpu相关统计信息

    背景:需要测试监控各个操作系统平台机器上的cpu相关的各种统计信息 为了方便测试,我写了一个比较通用的shell脚本,目前可以兼容Redhat6+,Redhat7+,其他操作系统没测,可以实时监控机器 ...

  2. Java小记(1)

    return 关键字 package mytest; public class Test4 { public static void main(String[] args) { // TODO Aut ...

  3. Unity 特殊目录

    其他目录 Application.persistentDataPath:webGL平台只能使用这个

  4. 爬虫2.2-scrapy框架-文件写入

    目录 scrapy框架-文件写入 1. lowb写法 2. 高端一点的写法 3. 优化版本 scrapy框架-文件写入 1. lowb写法 ~pipelines.py 前提回顾,spider.py中 ...

  5. Python基础 之 set集合 与 字符串格式化

    数据类型的回顾与总结 可变与不可变1.可变:列表,字典2.不可变:字符串,数字,元组 访问顺序:1.直接访问:数字2.顺序访问:字符串,列表,元祖3.映射:字典 存放元素个数:容器类型:列表,元祖,字 ...

  6. tomcat下载、安装

    下载 官网地址:https://tomcat.apache.org/download-80.cgi 安装 直接安装即可.安装完毕后Tomcat的目录结构如下: bin:脚本目录 ​ 启动脚本:star ...

  7. LiveVideoStack Meet|深圳 多媒体开发新趋势

    2018年初始,音视频技术生态并不平静,Codec争夺愈加激烈,新一代标准的挑战一浪高过一浪:WebRTC的定版也为打通浏览器.移动端乃至IoT带来了机会:此外AI.区块链技术的兴起,催化着与多媒体领 ...

  8. Python3 标准库:os

    1.重命名 import os os.rename('test.txt','x.txt') #重命名文件或目录 import os os.renames('a/123.txt','a/b/h.txt' ...

  9. 1.linux环境配置

    首先说一下,这里是虚拟机环境. 1.用vbox安装centos6.8-mini 注意不要使用复制的方式安装,复制的虚拟机网络不通 安装如下: 主机 ip 角色 内存 hadoop1 192.168.0 ...

  10. 关于onclick和addeventlistener('click'),click的整理

    代码 $(function(){ $("#btn").click(function(){ console.log(2) }) $("#btn").click(f ...