题目:洛谷P1525、Vijos P1776、codevs1069。

题目大意:有一些罪犯,两个罪犯之间可能会发生冲突,冲突有个影响力,而如果两个罪犯在不同监狱里,就可以避免冲突。现在有两个监狱,要你安排一种关押罪犯的方式,使得影响力最大的一次冲突影响力最小。

解题思路:贪心+并查集。先将所有冲突按影响力从大到小排序,然后一件一件处理,用并查集储存哪些罪犯处于同一个监狱中。我们把每个罪犯变成两个,如果该罪犯原来编号为$i$,那么现在编号为$2i$和$2i-1$,如果$2i$和$2j-1$处于同一个并查集内,则说明$i$和$j$关在不同的监狱里。如果两个罪犯已经在同一监狱里,则根据贪心的原则,该影响力就是答案。

注意题目说的如果没有冲突,输出0。

注意代码第24行和25行的合并操作。

C++ Code:

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m;
struct edge{int u,v,dis;bool operator <(const edge&rhs)const{return dis>rhs.dis;}
}e[100005];
int fa[40004];
int dad(int x){return x==fa[x]?x:fa[x]=dad(fa[x]);
}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;++i)scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].dis);sort(e+1,e+m+1);for(int i=1;i<=2*n;++i)fa[i]=i;for(int i=1;i<=m;++i){int x=dad(2*e[i].u),y=dad(2*e[i].v);if(x==y){printf("%d\n",e[i].dis);return 0;}fa[dad(2*e[i].u-1)]=y;fa[x]=dad(e[i].v*2-1);}puts("0");return 0;
}

转载于:https://www.cnblogs.com/Mrsrz/p/7249653.html

[NOIP2010提高组]关押罪犯相关推荐

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

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

  2. NOIP2010提高组 关押罪犯

    题目链接 题意就是,把罪犯放到两个不同的监狱中,每个犯人之间可能会有冲突值,如果两个犯人分在同一个监狱内他们的冲突值就会被激活,产生影响力为冲突值的冲突,监狱内的冲突值为所有人之间冲突的最大值,求分配 ...

  3. NOIP2010提高组题解

    [NOIP2010 提高组] 机器翻译 题目:[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单 ...

  4. 凡人升天传7——NOIP2010 提高组复赛题解

    本蒟蒻在考试时最后一道直接报零*__*,悲痛欲绝,因此在这里著下本题解. 可恶的西西弗 虽然题目做的很垃圾,但在写题解中途不得不感叹除了最后一道,其他真是好水题呀!!! --------------- ...

  5. NOIP2010 提高组 复赛 translate 机器翻译

    NOIP2010 提高组 复赛 translate 机器翻译 1.读题,很快弄明题意,单词不在内存中就查字典,统计查字典次数. 2.内存采用队列方式.统计进队列次数,即为查询次数. 3.程序很快编好, ...

  6. noip2010提高组3题题解 by rLq

    本题地址http://www.luogu.org/problem/show?pid=1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和 ...

  7. NOIP2010 提高组 机器翻译

    题目:http://www.tsinsen.com/ViewGProblem.page?gpid=A1182 解析:题目比较简单,应用了对列(数组模拟) 评测: /** =============== ...

  8. NOIP2010提高组初赛 c++————烽火传递

    题目描述 烽火台是重要的军事防御设施,一般建在交通要道或险要处.一旦有军情发生,则白天用浓烟,晚上有火光传递军情. 在某两个城市之间有 n 座烽火台,每个烽火台发出信号都有一定的代价.为了使情报准确传 ...

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

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

最新文章

  1. 全局拖拽上传文件(类似百度网盘)的实现及踩坑
  2. loadrunner提高篇 - 结果分析实践
  3. Pat乙级 1049 数列的片段和
  4. 街舞中的rolling机器人_REMEMBER街舞培训中心2020年元旦汇演
  5. loadrunner11安装,提示少了Microsoft Visual c++2005 sp1运行时组件解决办法
  6. LeetCode 519. 随机翻转矩阵(哈希)
  7. c++思维导图_40+张最全Linux/C/C++思维导图,你确定不收藏?
  8. 计算机桌面图标变成腾讯图标,桌面图标变成了未知图标
  9. 【Elasticsearch】Elasticsearch 集群健康值红色 解决方案 或者 分片 未分配
  10. Thread与Runnable的区别
  11. 从hive上下载文件
  12. CSS(十六)——美化表单实操
  13. Java 基本数据类型(四类八种)
  14. 小数分频器vhdl实现_verilog 实现小数分频(小数分频器)代码
  15. 802.11协议总结
  16. 计算机网络路由器和网关设置路由器,【计算机网络】网关和路由器功能的有哪些不同...
  17. 563. 二叉树的坡度【我亦无他唯手熟尔】
  18. 日本“性爱机器人”上线1小时被抢空
  19. 使用freesurfer和3Dslicer进行脑区分割和电极定点(日常记录)
  20. 计蒜客 17115 2017 ICPC 西安网络赛 B Coin

热门文章

  1. mysql截取字符串最后两位_Mysql字符串截取函数SUBSTRING的用法说明
  2. Jmeter之逻辑控制器(Logic Controller)
  3. MySQL多项模糊查询
  4. C语言 字符串的声明与使用
  5. hdu 3652 B-number 数位dp
  6. Java 默认/缺省 内存大小,如果没有 -Xms -Xmx
  7. 黑马Java学习笔记之-----集合框架
  8. VC++6.0如何创建与调用动态链接库(dll)
  9. Oracle 10g Audit(审计) --- 记录登录用户在Oracle中的所有操作(转)
  10. Pi network KYC的经验分享