POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)
寻找最小生成树中最大的边权。
使用 Kruskal 求解,即求选取的第 \(n-1\) 条合法边。
时间复杂度为 \(O(e\log e)\) 。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn = 10005;
int n, m, tot, f[2005];
struct edge{
int from, to, w;
bool operator < (const edge & _edge) const {
return w < _edge.w;
}
}e[maxn];
void init(){
for(int i = 1; i <= n; i++) f[i] = i;
}
int father(int x){
if(f[x] != x){
f[x] = father(f[x]);
}
return f[x];
}
void _union(int a, int b){
int fa = father(a), fb = father(b);
f[fa] = f[fb];
}
int ok(int a, int b){
int fa = father(a), fb = father(b);
return fa == fb ? 1 : 0;
}
int main()
{
scanf("%d%d", &n, &m);
init();
for(int i = 1; i <= m; i++){
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
e[++tot].from = a; e[tot].to = b; e[tot].w = c;
}
sort(e + 1, e + 1 + m);
int cnt = 0;
for(int i = 1; i <= m; i++){
if(!ok(e[i].from, e[i].to)){
_union(e[i].from, e[i].to);
cnt++;
if(cnt == n - 1){
printf("%d\n", e[i].w); break;
}
}
}
return 0;
}
POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)的更多相关文章
- POJ 2485 Highways (求最小生成树中最大的边)
Description The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public h ...
- poj 2485 求最小生成树中 最长的一条边
Sample Input 1 //T 3 //n0 990 692 //邻接矩阵990 0 179692 179 0Sample Output 692 prim # include <iostr ...
- POJ 2395 Out of Hay( 最小生成树 )
链接:传送门 题意:求最小生成树中的权值最大边 /************************************************************************* & ...
- POJ 2395 Out of Hay(最小生成树中的最大长度)
POJ 2395 Out of Hay 本题是要求最小生成树中的最大长度, 无向边,初始化es结构体时要加倍,别忘了init(n)并查集的初始化,同时要单独标记使用过的边数, 判断ans==n-1时, ...
- POJ 2395 Out of Hay(求最小生成树的最长边+kruskal)
Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18472 Accepted: 7318 Descr ...
- cogs—— 310. [POJ2395] Out of Hay
310. [POJ2395] Out of Hay ★☆ 输入文件:outofhay.in 输出文件:outofhay.out 简单对比 时间限制:1 s 内存限制:128 MB De ...
- HDU-1233 还是畅通工程 (prim 算法求最小生成树)
prim 算法求最小生成树 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- 求最小生成树(Prim算法)(1075)
Description 求出给定无向带权图的最小生成树.图的定点为字符型,权值为不超过100的整形.在提示中已经给出了部分代码,你只需要完善Prim算法即可. Input 第一行为图的顶点个数n ...
- prime算法求最小生成树(畅通工程再续)
连着做了四道畅通工程的题,其实都是一个套路,转化为可以求最小生成树的形式求最小生成树即可 这道题需要注意: 1:因为满足路的长度在10到1000之间才能建路,所以不满足条件的路径长度可以初始化为无穷 ...
随机推荐
- A-问题收益率
问题: 在金融中,我们有时会用内部收益率IRR来评价项目的投资财务效益,它等于使得投资净现值NPV等于0的贴现率.换句话说,给定项目的期数T.初始现金流CF0和项目各期的现金流CF1, CF2, …, ...
- 为什么要用消息队列 及 自己如何设计一个mq架构
1. 解耦:如左图, 系统a因为业务需求需要调用系统b,后续因为业务需求可能需要改代码调用系统c,甚至还要考虑被调用的系统挂了访问超时的问题.耦合性太高! 如右图, 系统a产生一条数据发送到消息队列里 ...
- ubuntu install xsltproc docbook-xsl docbook-xml
问题一: $ makexsltproc --output phtml/ param.xsl ./pxml/mainbook.xmlmake: xsltproc: Command not foundma ...
- div和span互换
div是块级元素,它不论大小默认占一行,而且可以设置宽高以及外边距span是行内元素,它占它自身大小的位置,而且不能设置宽高以及边距同时div也可以变为span (display:inline),这样 ...
- Spring基础07——配置集合属性
1.集合属性 在Spring中可以通过一组内置的xml标签(例如<list>,<set>或<map>)来配置集合属性. 2.配置List集合 配置java.util ...
- MixConv
深度分离卷积一般使用的是3*3的卷积核,这篇论文在深度分离卷积时使用了多种卷积核,并验证了其有效性 1.大的卷积核能提高模型的准确性,但也不是越大越好.如下,k=9时,精度逐渐降低 2. mixCon ...
- uboot if_changed函数
u-boot编译过程分析 u-boot.lds: $(LDSCRIPT) prepare FORCE $(call if_changed_dep,cpp_lds) u-boot: $(u-boot-i ...
- u-boot-2016.09 make编译过程分析(一)
https://blog.csdn.net/guyongqiangx/article/details/52565493 综述 u-boot自v2014.10版本开始引入KBuild系统,Makefil ...
- js 变量类型
变量类型分为:基础类型和引用类型 基础类型:boolean, string, number, null, undefined, symbol 引用类型: array, object typeof: 判 ...
- Mybatis(三)MyBatis 动态SQL
在 MyBatis 3 之前的版本中,使用动态 SQL 需要学习和了解非常多的标签,现在 MyBatis 采用了功能强大的 OGNL( Object-Graph Navigation Language ...