Kruskal HDOJ 1233 还是畅通工程
/*
最小生成树之kruskal算法--并查集(数据结构)实现
建立一个结构体,记录两点和它们的距离,依照距离升序排序
不连通就累加距离,即为最小生成树的长度
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std; const int MAXN = 5e3 + ;
const int INF = 0x3f3f3f3f;
int rt[MAXN];
struct Node
{
int u, v, w;
}node[MAXN]; bool cmp(Node x, Node y) {return x.w < y.w;} int Find(int x) {return (rt[x] == -) ? x : rt[x] = Find (rt[x]);} void Union(int x, int y)
{
x = Find (x); y = Find (y);
if (x > y) rt[y] = x;
else if (x < y) rt[x] = y;
} bool same(int x, int y) {return (Find (x) == Find (y));} int main(void) //HDOJ 1233 还是畅通工程
{
//freopen ("inB.txt", "r", stdin);
int n, m; while (~scanf ("%d", &n) && n)
{
m = n * (n - ) / ;
memset (rt, -, sizeof (rt));
for (int i=; i<=m; ++i)
{
scanf ("%d%d%d", &node[i].u, &node[i].v, &node[i].w);
}
sort (node+, node++m, cmp);
int sum = ;
for (int i=; i<=m; ++i)
{
int x = node[i].u; int y = node[i].v;
int w = node[i].w;
if (!same (x, y)) {Union (x, y); sum += w;}
}
printf ("%d\n", sum);
}
}
Kruskal HDOJ 1233 还是畅通工程的更多相关文章
- Hdoj 1233.还是畅通工程 题解
Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...
- hdoj 1233 还是畅通工程---最小生成树---prime算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233 可以用Kruskal来做,不过当图的边比较稠密的时候用prime会更快一些. AC代码:296MS ...
- hdoj 1233 还是畅通工程(最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 思路分析:该问题为最小生成树问题,使用kruskal算法或者prim算法即可解决: 代码如下: ...
- HDU 1233 还是畅通工程(Kruskal算法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- HDU.1233 还是畅通工程(Prim)
HDU.1233 还是畅通工程(Prim) 题意分析 首先给出n,代表村庄的个数 然后出n*(n-1)/2个信息,每个信息包括村庄的起点,终点,距离, 要求求出最小生成树的权值之和. 注意村庄的编号从 ...
- hdu 1233 还是畅通工程 (最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)
还是畅通工程 Time Limit: 4000/2 ...
- hdu 1233 还是畅通工程 (prim, kruskal)
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1233 还是畅通工程(Kruskal)
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
随机推荐
- IOS版DesiredCapabilities参数配置
前言 相比较Android的DesiredCapabilities参数配置,IOS的相对而言比较复杂. 特别是在真机上跑的时候,参数就更加复杂. DesiredCapabilities参数配置 模拟器 ...
- React Native安装
1.安装 1.1 安装Node.js 下载安装即可 1.2 安装Homebrew 终端中执行: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.gi ...
- JAVA学习第六十五课 — 正則表達式
正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告 ...
- 利用BADI WORKORDER_INFOSYSTEM在COOIS中加入自己定义列办事处
需求描写叙述:依据LC业务部门提出的需求.须要在COOIS中加入办事处一列. 1.在IOHEADER_TAB的CI_IOHEADER中加入字段办事处.如以下图所看到的: watermark/2/t ...
- UVA 10887 Concatenation of Languages 字符串hash
题目链接:传送门 题意: 给你两个集合A,B,任意组合成新的集合C(去重) 问你最后C集合大小 题解: 暴力 组成的新串hash起来 #include<bits/stdc++.h> usi ...
- top load average
负载均值 等待运行的进程数
- android studio Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"
android studio运行会遇到Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Reques ...
- redis03----集合 set 相关命令
集合 set 相关命令 集合的性质: 唯一性,无序性,确定性 注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素 但,因为集合的无序性,无法通过下 ...
- 北斗有 35 颗卫星,而 GPS 有 24 颗卫星,为什么二者数量不同?
作者:知乎用户链接:https://www.zhihu.com/question/21092045/answer/17164418来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- How to create a List of ValueTuple?
ValueTuple需要通过NuGet安装System.ValueTuple https://docs.microsoft.com/en-us/dotnet/csharp/tuples?view=ne ...