hdu-1863-畅通工程(kruskal算法模板)
/*
Name:hdu-1863-畅通工程
Copyright:
Author:
Date: 2018/4/18 10:19:03
Description:
kruskal算法
*/
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int MAXN = ;
struct edge{
int x, y, w;
edge(int x=,int y=, int w=):x(x),y(y),w(w){
};
} e[];
int N ,M, cnt;
int fa[MAXN];
int getfather(int x) {//查找
if (x == fa[x]) return x;
else return fa[x] = getfather(fa[x]);
}
bool cmp(edge a, edge b) {//从小到大排序
return a.w < b.w;
}
int kruskal() {
sort(e+, e+M+, cmp);
cnt = M;//边数
int ans = ;
for (int i=; i<=N; ++i) fa[i] = i;
for (int i=; i<=M; ++i) {
int t1 = getfather(e[i].x);
int t2 = getfather(e[i].y);
if (t1 != t2) {
fa[t1] = t2;
ans += e[i].w;
cnt--;//加入结点
if (cnt == ) break;////// 加入n-1条边说明已经生成最小生成树
}
}
return ans;
}
int main()
{
// freopen("in.txt", "r", stdin);
while (cin>>N>>M, N) {
memset(e, , sizeof(e));
memset(fa, , sizeof(fa));
for (int i=; i<=N; i++) {
scanf("%d %d %d", &e[i].x, &e[i].y, &e[i].w);
}
int ans = kruskal();
if (cnt != ) cout<<"?"<<endl;
else cout<<ans<<endl;
}
return ;
}
hdu-1863-畅通工程(kruskal算法模板)的更多相关文章
- HDU 1863 畅通工程 -Kruskal模版
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 1863 畅通工程(Kruskal+并查集)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1863 畅通工程(Kruskal)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 1863 畅通工程 (并查集+最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others) M ...
- HDU 1863 畅通工程(Prim,Kruskal,邻接表模板)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU 1863 畅通工程(Prim算法求解MST)
题目: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本.现 ...
- HDU 1863 畅通工程 克鲁斯卡尔算法
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 1863 畅通工程 (并查集 、 kruskal)
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- <hdu - 1863> 畅通工程 并查集和最小生成树问题
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 Problem Description: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以 ...
- hdu 1863 - 畅通工程(MST)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- Java的变量命名
Java的变量命名 1.首字母是英文字母.$和下划线,由字母.数字和下划线组成. [很常规] 2.变量的命名遵循见名知义的原则. [很重要,比如名字就用 name ,而不是用a.b.c这样的命名, ...
- 4.2 使用STM32控制MC20发送短信
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- 剑指offer面试54题
面试54题: 题目:二叉搜索树的第K大节点 题:给定一颗二叉搜索树,请找出其中的第k小的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 解题思 ...
- English Phrases
@1:Phrases requst sth from/of sb 向某人要求某物 a new lease on life 重获新生.焕发生机 state of the art 最先进的 at th ...
- FTP主动连接与被动连接
FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,应用层的协议,它基于传输层, FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而 ...
- RHEL 5 安装gcc
rpm -ivh kernel-headers... rpm -ivh glibc-headers... rpm -ivh glibc-devel... rpm -ivh libgomp.. rpm ...
- 获取文件的MD5值,比较两个文件是否完全相同
代码: public class MD5Test { public static void main(String[] args) { String s1 = MD5Test.MD5Operation ...
- 【LeetCode】【矩阵旋转】Rotate Image
描述 You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise ...
- HAproxy 源码包安装
HAproxy 源码包安装 系统环境:Centos 7 x64位 服务版本:haproxy-1.7.8.tar.gz 编译工具:gcc 下载地址 HAproxy:https://pan.baidu.c ...
- Hearbeat 工作原理
Hearbeat 原理 heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路, ...