【NOIP】关押罪犯
带权并查集,其实这种并查集的核心就是“向量”
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 int n,m,p[20001],r[20001]; //0表示在同一监狱,1表示在不同监狱 6 struct node{ 7 int a,b,c; 8 }d[100000]; 9 int cmp(node x,node y){ 10 return x.c>y.c; 11 } 12 int findp(int x){ 13 if(p[x]!=x){ 14 int px=findp(p[x]); //找到真正的根结点 15 r[x]=(r[p[x]]+r[x])%2; //更新当前结点x和真正根结点px的关系r[x],括号里的r[x]是和旧的父结点的关系 16 p[x]=px; 17 } 18 return p[x]; 19 } 20 int main() 21 { 22 int ok=0; 23 scanf("%d%d",&n,&m); 24 for(int i=1;i<=n;i++) p[i]=i; 25 for(int i=0;i<m;i++) 26 scanf("%d%d%d",&d[i].a,&d[i].b,&d[i].c); 27 sort(d,d+m,cmp); 28 for(int i=0;i<m;i++){ 29 int x=d[i].a,y=d[i].b,z=d[i].c; 30 int px=findp(x),py=findp(y); 31 if(px!=py){ //两者不在同一集合,需要把x,y放在不同监狱,也就是向量(x,y)为1 32 p[px]=py; //据此可以算出(px,py)的值,也就是r[px] 33 r[px]=(1+r[y]-r[x])%2; 34 } 35 else{ 36 if(!((r[y]-r[x]+2)%2)){ //根据向量关系,两者在同一个监狱 37 ok=1; 38 printf("%d",z); 39 break; 40 } 41 } 42 } 43 if(!ok) printf("0"); 44 return 0; 45 }
转载于:https://www.cnblogs.com/sulley/p/8068233.html
【NOIP】关押罪犯相关推荐
- 并查集的补集 (关押罪犯)
定义元素T的逆为t,t一定不在包含T的集合里 因为对于两个需要分配在不同集合的元素A.B,我们并不知道具体该怎么分,所以就令元素A和b在一起,元素B和a在一起. 避免了直接分配A,B到哪一个集合的问题 ...
- 专题突破三之并查集Ⅱ——星球大战,In Touch,方格染色,Junk-Mail Filter,关押罪犯,Silver Woods,Must Be Rectangular!
文章目录 [JSOI2008]星球大战 In Touch 方格染色 Junk-Mail Filter [NOIP2010 提高组] 关押罪犯 Silver Woods Must Be Rectangu ...
- 洛谷P1525 关押罪犯
P1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用" ...
- [NOIP2010提高组]关押罪犯
题目:洛谷P1525.Vijos P1776.codevs1069. 题目大意:有一些罪犯,两个罪犯之间可能会发生冲突,冲突有个影响力,而如果两个罪犯在不同监狱里,就可以避免冲突.现在有两个监狱,要你 ...
- [NOIP2010]关押罪犯
题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用&quo ...
- #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯
洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯 #题目描述 #一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱 # ...
- 关押罪犯-并查集、贪心
题目来源:Acwing 257.关押罪犯&洛谷 P1525 [NOIP2010 提高组] 关押罪犯 思路来源:这里 题目描述 S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为1~N. 他 ...
- 关押罪犯 并查集~~~
关押罪犯 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨 气值"(一 ...
- NOIP2010关押罪犯题解(洛谷P1525) (并查集)
NOIP2010关押罪犯题解(洛谷P1525) (并查集) 日常膜拜dalao:财神万岁!!!!!!!!!!!!!!!!!!!!! 日常凌晨三点水题解..(原谅我中间断更了几天,,马上分班考试了竞赛顾 ...
- 关押罪犯 - C++
关押罪犯 题目描述 S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1−N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值 ...
最新文章
- xcode4发布测试-打包(Archive)
- CF1041C Coffee Break
- 桌面计算机怎么覆盖文件,win7系统桌面快捷方式图标被未知文件覆盖如何解决...
- Spring系列(五):@Lazy懒加载注解用法介绍
- 解决larave-dompdf中文字体显示问题
- 基于JAVA+SpringBoot+Mybatis+MYSQL的在线动漫信息平台
- 记一次Jenkins 打包异常 ERROR: Exception when publishing, exception message [Failure]
- 珍大户《认知世界的经济学》学习笔记 -- 第17课 影响消费者的因素 -- 色彩、冷暖、秩序
- tcpdf html 支持css吗,TCPDF - 内部css无效
- IDEA 提示Unmapped Spring configuration files found的解决办法
- 南师大GIS考研数据库2019年第五题
- linux v4l2架构分析之v4l2_ctrl_handler初始化及添加v4l2_ctrl的过程分析
- 世上真有后悔药,删除的数据文件可恢复,6款免费数据恢复软件
- 流处理引擎:ksql
- 问题步骤记录器——Windows系统下自带的录屏神器?
- 拼音解析搜索--自动解析拼音汉子组合(包含多音字,拼音缩写)
- Java利用qq邮箱发送邮件
- 2020年就业形势严峻,UI设计师这条路还有前景吗?
- matlab+字体设置大小,Matlab中如何修改字体的大小?
- linux查询raid信息,linux查看raid信息
热门文章
- 标准10进制公制度量系统中 倍率关系 大全
- mlflow_使用MLflow跟踪进行超参数调整
- 欢迎使用CSDN-markdown编辑器test
- php5.5 连接数据库,php5.5 session_set_save_handler 连接数据库问题
- 华为云classroom应用_华为任正非:将来所有应用都会长在云土地上,但现在还不是...
- docker always_Ubuntu+Docker+STF环境搭建
- 徐波 博士 计算机,徐波教授:医工联合促进智能肿瘤学发展——探秘肿瘤精准治疗中的AI技术...
- eclipse找不到dynamic_Eclipse Juno在Dynamic Web Project中没有JSP(但其他...
- learn python app v3_App Store 上的“Learn Python and Scratch”
- 特斯拉是l3还是l2_比特斯拉还“高一级”,长安的“L3级自动驾驶”到底什么来头?...