P1525 关押罪犯 题解
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
//带边权的并查集+贪心
/*
根据贪心可以知道,当把仇恨值大的先分开放就会最优
所以还要用sort
*/
],n,m;
struct ziji{
int x,y,z;
#define x(i) mn[i].x
#define y(i) mn[i].y
#define z(i) mn[i].z
}mn[];
];
inline int father(int v){
if(v==fa[v]) return v;
else return father(fa[v]);
}
void chuli(int n){
;i<=n;i++) fa[i]=i;
}
void message(int a,int b){
int root=father(a),root1=father(b);
fa[root]=root1;
}
bool check(int a,int b){
//看看这俩是否在一个监狱里
int root=father(a),root1=father(b);
if(root==root1) return false;
else return true;
}
bool cmp(ziji a,ziji b){return a.z>b.z;}
int main(){
scanf("%d%d",&n,&m);chuli(n);
;i<=m;i++) scanf("%d%d%d",&x(i),&y(i),&z(i));
sort(mn+,mn++m,cmp);
;i<=m+;i++){
//当找到m+1时,x(i)与y(i)都是0,所以此时也就会输出0
if(check(x(i),y(i))==false){
printf(;
}//如果这俩已经在一个监狱里了,就输出
if(!name[x(i)]) name[x(i)]=y(i);//如果x(i)还没有过敌人,就把他的敌人设为y(i)
//此时这俩不在一个监狱里,也不用合并
else message(name[x(i)],y(i));
//他已经有死敌了,又因为这是把敌对值从大到小排序,
//所以把他上次的敌人和这次的敌人合并就会更好
if(!name[y(i)]) name[y(i)]=x(i);
else message(name[y(i)],x(i));
}
}
P1525 关押罪犯 题解的更多相关文章
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...
- luoguP1525 关押罪犯 题解(NOIP2010)(并查集反集)
P1525 关押罪犯 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<c ...
- 洛谷P1525 关押罪犯(并查集、二分图判定)
本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...
- [NOIP2010] 提高组 洛谷P1525 关押罪犯
刚才做并查集想到了这道以前做的题,干脆一并放上来 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可 ...
- 洛谷P1525 关押罪犯
To 洛谷.1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用 ...
- tyvj P1403 关押罪犯 题解
P1403 [NOIP2010]关押罪犯 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他 ...
- 【题解】洛谷 P1525 关押罪犯
题目 https://www.luogu.org/problemnew/show/P1525 思路 把所有边sort一遍从大到小排列 运用并查集思想敌人的敌人就是朋友 从最大边开始查找连着的两个罪犯 ...
- P1525 关押罪犯 并查集
题目描述 SS城现有两座监狱,一共关押着NN名罪犯,编号分别为1-N1−N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值) ...
随机推荐
- Laravel中Trait的用法实例详解
本文实例讲述了Laravel中Trait的用法.分享给大家供大家参考,具体如下: 看看PHP官方手册对Trait的定义: 自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 trait ...
- 数据挖掘中ID3算法实现zz
id3 function D = ID3(train_features, train_targets, params, region) % Classify using Quinlan's ID3 a ...
- AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)(转)
出处:http://www.bubuko.com/infodetail-827612.html AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI ODat ...
- 解决windows搭建jenkins执行selenium无法启动浏览器问题
因为jenkins是用windows installer 安装成windows的服务了,那么jenkins是一个后台服务,所以跑selium cases 的时候不显示浏览器 Step 1. Contr ...
- 安装Oracle数据库时出现网络配置需求检查失败
提示方法:将 Microsoft LoopBack Adapter 配置为系统的主网络适配器. 解决方法: 控制面板->添加硬件->是,(win7及之后没有添加硬件这个选项了,可以在c ...
- kali下搭建WiFi钓鱼热点
在linux下建立无线热点并不像在windows下开启网络共享或者使用无线网卡驱动设置AP模式即可. linux下的无线共享要用到两个软件:hostapd(创建无线热点).dnsmasq(dns服务和 ...
- Concurrent Request:Inactive phase,No Manager status
Symptom 随便submit一个request,发现几乎所有的Concurrent Manager都为No Manager状态,Phase为Inactive. Solution 一个Concurr ...
- Python学习-11.Python中的类定义
Python是一门面向对象语言,那么作为面向对象的特征——类也是有的.值得注意的是Python中一切皆对象,并不像C#中为了性能考虑,int这些在Python中也是对象.(C#中int是结构体) 如何 ...
- mysql初次登陆跳过密码并初始化密码
如下均已mysql5.7为标准版本. 1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下: #vim /etc/my.cnf(注:windows下修改的是my.ini) 在文档内搜索mys ...
- XEvent--基础
--SQL Server 扩展事件具有高度可伸缩且高度可配置的体系结构,--使用户能够按需收集解决性能问题或确定性能问题所需的信息.--1. 性能损耗小--2. 可配置性高--3. 可捕获底层事件 - ...