【洛谷P1525】[NOIP2010]关押罪犯
关押罪犯
思路:
二分图或并查集
这里讲并查集算法:
1.将每对罪犯的冲突关系按影响从大到小排序
2.将集合与(i+n)合并表示编号为i的罪犯不能在该集合内
3.依次从大到小处理冲突关系:
若x与y+n、y与x+n不在同一个集合内,将集合find(x)与集合find(y+n)合并,将集合find(x+n)与集合find(y)合并;
反之,则发生了冲突,退出循环,当前罪犯的怨气值即为最小的冲突影响
贴代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,fa[];
int find(int x)
{
if(fa[x]!=x) fa[x]=find(fa[x]);
return fa[x];
}
void unionn(int x,int y)
{
int fx=find(x),fy=find(y);
fa[fx]=fy;
}
struct w{
int l;
int r;
int data;
} xw[];
bool cmp(w x,w y)
{
return x.data>y.data;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=*n;i++)
fa[i]=i;
for(int i=;i<=m;i++)
scanf("%d%d%d",&xw[i].l,&xw[i].r,&xw[i].data);
sort(xw+,xw++m,cmp);
for(int i=;i<=m;i++)
{
unionn(xw[i].l,xw[i].r+n);
unionn(xw[i].l+n,xw[i].r);
if(find(xw[i].l)==find(xw[i].l+n)||find(xw[i].r+n)==find(xw[i].r)) {
printf("%d\n",xw[i].data);
return ;
}
}
cout<<<<endl;
return ;
}
@klxw
【洛谷P1525】[NOIP2010]关押罪犯的更多相关文章
- 洛谷 P1525 【关押罪犯】种类并查集
题解 P1525 [关押罪犯]:种类并查集 前言: 在数据结构并查集中,种类并查集属于扩展域并查集一类. 比较典型的题目就是:食物链(比本题难一些,有三个种类存在) 首先讲一下本题的贪心,这个是必须要 ...
- 【洛谷 P1525】 关押罪犯 (二分图+二分答案)
题目链接 并查集+贪心当然是可以做的. 但我用二分图+二分答案. 二分一个\(mid\),删去所有边权小于等于\(mid\)的边,看有没有奇环存在,如果存在,则\(mid\)不行. #include ...
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- 洛谷P1525 关押罪犯(并查集、二分图判定)
本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...
- TYVJ P1403 [NOIP2010]关押罪犯
TYVJ的编译器总是要搞点岔子出来,上次是double必须用f输出而不能用lf,这次又不知道为何CE 于是去了洛谷P1525测试,AC 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1 ...
- [NOIP2010] 提高组 洛谷P1525 关押罪犯
刚才做并查集想到了这道以前做的题,干脆一并放上来 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可 ...
- 洛谷P1525 关押罪犯
To 洛谷.1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用 ...
- 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...
- Luogu P1892 P1525 团伙 关押罪犯
(怎么都是抓罪犯 怪不得写法差不多) 团伙 关押罪犯 并查集.以"敌人的敌人是朋友"的思路来处理.所以增加一个e/E数组来存储敌人. 关押罪犯还用到了贪心的思路.将冲突值从大到小排 ...
随机推荐
- swagger2使用日志
------------------------------------------------------------------------------------ 安装.配置.使用 参考:htt ...
- prototype.js
(1)$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写, 就像这个DOM方法一样,这个方法返回参数传入的id的那个元素. (2)
- windows下修改了系统变量里java_home所引用的jdk,但是查询jdk的版本并没有发生改变
# 原因:因为%SystemRoot%\system32 在引用这个环境变量时,会默认C:\Windows\System32下的jdk版本 # 解决方法: 把jdk的配置放在path前面就可以了
- jquery 操作 checkbox select
1.prop方法获取.设置checked属性 <input type="checkbox" name="checkboxMain" onclick=&qu ...
- Murano Weekly Meeting 2016.06.21
Meeting time: 2016.June.21 1:00~2:00 Chairperson: Kirill Zaitsev, from Mirantis Meeting summary: 1. ...
- Neutron命令测试2
/etc/network/interfaces auto loiface lo inet loopback auto eth0iface eth0 inet manualup ifconfig $IF ...
- (转)centOS wget的使用
摘要:CentOS wget是一个从网络上自动下载文件的自由工具.它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是指,CentOS wget可以在用户退出系统的之后在后 ...
- Java实现中文词频统计
昨日有个中文词频统计的需求, 百度一番后, 发现一大堆标题党文章, 讲的与内容严重不符, 这里就简单记录下自己实现的流程吧! 与英文单词的词频统计不同, 中文的难点在于如何分词, 不过好在有许多优秀的 ...
- Jersey实现文件上传下载
一 文件上传 使用ajaxFileUpload进行文件上传的前端处理.在ajaxFileupload.js中,针对服务端返回的类型增加text判断, //ajax文件上传 function ajaxF ...
- 使用Aspose.Cell控件实现Excel高难度报表的生成
1.使用Aspose.Cell控件实现Excel高难度报表的生成(一) http://www.cnblogs.com/wuhuacong/archive/2011/02/23/1962147.html ...