带权并查集,其实这种并查集的核心就是“向量”

 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】关押罪犯相关推荐

  1. 并查集的补集 (关押罪犯)

    定义元素T的逆为t,t一定不在包含T的集合里 因为对于两个需要分配在不同集合的元素A.B,我们并不知道具体该怎么分,所以就令元素A和b在一起,元素B和a在一起. 避免了直接分配A,B到哪一个集合的问题 ...

  2. 专题突破三之并查集Ⅱ——星球大战,In Touch,方格染色,Junk-Mail Filter,关押罪犯,Silver Woods,Must Be Rectangular!

    文章目录 [JSOI2008]星球大战 In Touch 方格染色 Junk-Mail Filter [NOIP2010 提高组] 关押罪犯 Silver Woods Must Be Rectangu ...

  3. 洛谷P1525 关押罪犯

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

  4. [NOIP2010提高组]关押罪犯

    题目:洛谷P1525.Vijos P1776.codevs1069. 题目大意:有一些罪犯,两个罪犯之间可能会发生冲突,冲突有个影响力,而如果两个罪犯在不同监狱里,就可以避免冲突.现在有两个监狱,要你 ...

  5. [NOIP2010]关押罪犯

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

  6. #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯

    洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯 #题目描述 #一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱 # ...

  7. 关押罪犯-并查集、贪心

    题目来源:Acwing 257.关押罪犯&洛谷 P1525 [NOIP2010 提高组] 关押罪犯 思路来源:这里 题目描述 S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为1~N. 他 ...

  8. 关押罪犯 并查集~~~

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

  9. NOIP2010关押罪犯题解(洛谷P1525) (并查集)

    NOIP2010关押罪犯题解(洛谷P1525) (并查集) 日常膜拜dalao:财神万岁!!!!!!!!!!!!!!!!!!!!! 日常凌晨三点水题解..(原谅我中间断更了几天,,马上分班考试了竞赛顾 ...

  10. 关押罪犯 - C++

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

最新文章

  1. xcode4发布测试-打包(Archive)
  2. CF1041C Coffee Break
  3. 桌面计算机怎么覆盖文件,win7系统桌面快捷方式图标被未知文件覆盖如何解决...
  4. Spring系列(五):@Lazy懒加载注解用法介绍
  5. 解决larave-dompdf中文字体显示问题
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线动漫信息平台
  7. 记一次Jenkins 打包异常 ERROR: Exception when publishing, exception message [Failure]
  8. 珍大户《认知世界的经济学》学习笔记 -- 第17课 影响消费者的因素 -- 色彩、冷暖、秩序
  9. tcpdf html 支持css吗,TCPDF - 内部css无效
  10. IDEA 提示Unmapped Spring configuration files found的解决办法
  11. 南师大GIS考研数据库2019年第五题
  12. linux v4l2架构分析之v4l2_ctrl_handler初始化及添加v4l2_ctrl的过程分析
  13. 世上真有后悔药,删除的数据文件可恢复,6款免费数据恢复软件
  14. 流处理引擎:ksql
  15. 问题步骤记录器——Windows系统下自带的录屏神器?
  16. 拼音解析搜索--自动解析拼音汉子组合(包含多音字,拼音缩写)
  17. Java利用qq邮箱发送邮件
  18. 2020年就业形势严峻,UI设计师这条路还有前景吗?
  19. matlab+字体设置大小,Matlab中如何修改字体的大小?
  20. linux查询raid信息,linux查看raid信息

热门文章

  1. 标准10进制公制度量系统中 倍率关系 大全
  2. mlflow_使用MLflow跟踪进行超参数调整
  3. 欢迎使用CSDN-markdown编辑器test
  4. php5.5 连接数据库,php5.5 session_set_save_handler 连接数据库问题
  5. 华为云classroom应用_华为任正非:将来所有应用都会长在云土地上,但现在还不是...
  6. docker always_Ubuntu+Docker+STF环境搭建
  7. 徐波 博士 计算机,徐波教授:医工联合促进智能肿瘤学发展——探秘肿瘤精准治疗中的AI技术...
  8. eclipse找不到dynamic_Eclipse Juno在Dynamic Web Project中没有JSP(但其他...
  9. learn python app v3_‎App Store 上的“Learn Python and Scratch”
  10. 特斯拉是l3还是l2_比特斯拉还“高一级”,长安的“L3级自动驾驶”到底什么来头?...