洛谷P1525关押罪犯——并查集
题目:https://www.luogu.org/problemnew/show/P1525
并查集+贪心,从大到小排序,将二人分在不同房间,找到第一个不满足的即为答案。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,fa[20005],ans,ct,d[20005];
struct N{
int hd,to,w;
}edge[100005];
bool cmp(N x,N y)
{
return x.w>y.w;
}
int find(int x)
{
if(fa[x]==x)return x;
else
{
int root=find(fa[x]);
d[x]+=d[fa[x]];
fa[x]=root;
}
return fa[x];
}
int main()
{
scanf("%d%d",&n,&m);
int a,b,c;
for(int i=1;i<=m;i++)
{
ct++;
scanf("%d%d%d",&edge[ct].hd,&edge[ct].to,&edge[ct].w);
}
sort(edge+1,edge+m+1,cmp);
for(int i=1;i<=n;i++)fa[i]=i;
for(int i=1;i<=m;i++)
{
int u=find(edge[i].hd);
int v=find(edge[i].to);
if(u==v&&(d[edge[i].to]-d[edge[i].hd])%2==0)//在同间
{
ans=edge[i].w;
break;
}
if(u!=v)
{
fa[u]=v;
d[u]=d[edge[i].to]-d[edge[i].hd]+1;//dhd+du=dto+1;
}
}
printf("%d",ans);
return 0;
}
洛谷P1525关押罪犯——并查集的更多相关文章
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- 洛谷P1525 关押罪犯
To 洛谷.1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用 ...
- 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...
- 洛谷P1525 关押罪犯(并查集、二分图判定)
本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...
- 洛谷 P1525 关押罪犯 NOIp2010提高组 (贪心+并查集)
题目链接:https://www.luogu.org/problemnew/show/P1525 题目分析 通过分析,我们可以知道,这道题的抽象意义就是把一个带边权的无向图,分成两个点集,使得两个集合 ...
- 洛谷 P1525 关押罪犯 (贪心,扩展域并查集)
题意:有\(n\)个罪犯,\(m\)对罪犯之间有仇,现在将这些罪犯分到两个监狱里去,问两个监狱里有仇罪犯之间的最大权值最小为多少. 题解:先按边权从大到小排序,然后贪心,边权大的两个罪犯,我们一定要先 ...
- 洛谷 P1525 关押罪犯 & [NOIP2010提高组](贪心,种类并查集)
传送门 解题思路 很显然,为了让最大值最小,肯定就是从大到小枚举,让他们分在两个监狱中,第一个不符合的就是答案. 怎样判断是否在一个监狱中呢? 很显然,就是用种类并查集. 种类并查集的讲解——团伙(很 ...
- [NOIP2010] 提高组 洛谷P1525 关押罪犯
刚才做并查集想到了这道以前做的题,干脆一并放上来 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可 ...
- 【题解】洛谷 P1525 关押罪犯
题目 https://www.luogu.org/problemnew/show/P1525 思路 把所有边sort一遍从大到小排列 运用并查集思想敌人的敌人就是朋友 从最大边开始查找连着的两个罪犯 ...
随机推荐
- rtems 4.11 启动流程(arm, beagle)
请参照官方的 bsp_howto 文档,对arm来说,首先执行的文件是start.S start.S c/src/lib/libbsp/arm/shared/start/start.S 1.从 _st ...
- ubantu 下 修改mysql 默认编码
启动mysql后,以root登录mysql root@Eadgar-virtual-machine:~# mysql -uroot -proot mysql> show variables li ...
- 【PyCharm编辑器】之引用selenium包提示错误:Unresolved reference 'selenium' less... (Ctrl+F1)
一.现象还原: 当新建.py文件时,需要引用selenium中的方法时,报错,提示红波浪线: Unresolved reference 'selenium' less... (Ctrl+F1) Thi ...
- CSS -- 未解之疑
@.css那些事儿 -- 第9章 反馈表单 自己编写了CSS,可是红框中的横线比下面的要粗.对比作者的代码,发现可能与上面标题h3的height和line-height有关,但是不知道具体是为什么? ...
- python 基础 6.1 异常处理方法
一. Excepthion 异常类 Excepthion 是所有的异常基础类(),对于python 的标准异常,我们列出如下,以做参考: 异常名称 ...
- 九度OJ 1044:Pre-Post(先序后序) (n叉树、递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:701 解决:398 题目描述: We are all familiar with pre-order, in-order and post- ...
- 【题解】Making The Grade(DP+结论)
[题解]Making The Grade(DP+结论) VJ:Making the Grade HNOI-D2-T3 原题,禁赛三年. 或许是我做过的最简单的DP题了吧(一遍过是什么东西) 之前做过关 ...
- 一起来学linux:sudo
通常在转换用户的时候会用到su 用户的方式.但是su方式需要知道切换的用户密码.而且su root到roo账户后,root账户有全部的权限.为了防止root账户干错事,因此有了sudo的命令.sudo ...
- .net概念(转)
你主要想问.Net和Java的差异在哪里 Java是开发语言 .Net叫开发平台 但事实上你管Java叫开发平台也没错 平台就是一个供你在上面进行开发的平台 (英语叫Framework,也可以翻译成“ ...
- 剑指Offer:矩形覆盖【N1】
剑指Offer:矩形覆盖[N1] 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目思考 我们先把2*8的 ...