还是畅通工程(MST)
Description
Input
当N为0时,输入结束,该用例不被处理。
Output
Sample Input
1 2 1
1 3 2
2 3 4
4
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
0
Sample Output
5
Hint
Hint Huge input, scanf is recommended.
#include<stdio.h>
#include<iostream>
#include<string.h>
#define maxn 0x3fff
using namespace std;
int d[] , map[][] , v[] ;//d[i]用来存放(i - 1) - th ~ i - th (point) 的权值 , v[i] 中0表示没选过 , 1表示选过
int n , m ; int prim (int start )
{
int mm , x ;
for (int i = ; i <= n ; i++)
d[i] = i == start ? : maxn ; //给 起始点 和 非起始点 涂色
for (int i = ; i <= n ; i++) {
mm = maxn ;
for (int j = ; j <= n ; j++) { //找出权值最小的边
if ( !v[j] && d[j] < mm ) {
mm = d[j] ;
x = j ;
}
}
v[x] = ;
for (int j = ; j <= n ; j++ ) {
if ( !v[j] && d[j] > map[x][j] && map[x][j] != maxn )
d[j] = map[x][j] ;
}
}
int tmp = ;
for (int i = ; i <= n ; i++)
tmp += d[i] ;
return tmp ;
} int main ()
{
// freopen ("a.txt" , "r" , stdin ) ;
int val ;
int a , b ;
int res ;
while ( cin >> n , n) {
m = n * (n - ) >> ;
memset (map , 0x3f , sizeof(map) ) ;
memset (v , , sizeof(v) ) ;
for(int i = ; i <= m ; i++ )
{
scanf ("%d%d%d", &a , &b , &val );
if( val < map[a][b] )
{
map[a][b] = val;
map[b][a] = val;
}
}
res = prim() ;
cout << res << endl ;
}
return ;
}
200 ms prim
#include<stdio.h>
#include<algorithm>
using namespace std;
int fa[] , n , m ;
struct edge
{
int u , v , w ;
}e[]; int cmp (edge a , edge b)
{
return a.w < b.w ;
} int find (int x)
{
return fa[x] == x ? x : find(fa[x]) ;
} void kruskal ()
{
sort (e + , e + m + , cmp ) ;
int ans = , x , y ;
for (int i = ; i <= m ; i++ ) {
x = find (e[i].u) ;
y = find (e[i].v) ;
if ( x != y) {
ans += e[i].w ;
fa[x] = y ;
}
}
printf ("%d\n" , ans ) ;
}
int main ()
{
// freopen ("a.txt" , "r" , stdin ) ;
while (~ scanf ("%d" , &n ) , n ) {
for (int i = ; i <= n ; i++)
fa[i] = i ;
m = n * (n - ) >> ;
for (int i = ; i <= m ; i++ ) {
scanf ("%d%d%d" , &e[i].u , &e[i].v , &e[i].w ) ;
}
kruskal () ;
}
return ;
}
kruskal
还是畅通工程(MST)的更多相关文章
- hdu 1233 - 还是畅通工程(MST)
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdu 1863 - 畅通工程(MST)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu1863 畅通工程---MST&连通
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1863 题目大意: 中文题,求MST权值,如果不连通,输出? 解题思路: 这道题帮我找出了之前模板中的 ...
- hdu-1233 还是畅通工程---MST模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 题目大意: 求MST最小生成树 解题思路: Prim算法直接套即可 #include<b ...
- hdu-1879 继续畅通工程---确定部分边的MST
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1879 题目大意: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的 ...
- MST(最小生成树)——Prim算法——HDU 1879-继续畅通工程
Prim算法很好理解,特别是学完了迪杰斯特拉算法之后,更加能理解Prim的算法思想 和迪杰斯特拉算法差不多,由于最后要形成连通图,故任意指定一个点,作为初始点,遍历所有点,以当前最小权值的点(和迪杰斯 ...
- 畅通工程再续(MST)
畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- HDU 1863 畅通工程(Prim算法求解MST)
题目: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本.现 ...
- 最小生成树(MST) prim() 算法 kruskal()算法 A - 还是畅通工程
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离. 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公 ...
随机推荐
- Bootstrap系列 -- 18. 表单控件大小
前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了两个不同的类名, ...
- mustache.js
mustache.js 是一个 Mustache 模板系统的 JavaScript 实现. Mustache 模板语法的逻辑比较简单.它用于HTML,配置文件,源代码等.它的工作方式是通过通过以哈希值 ...
- [USACO2004][poj1989]The Cow Lineup(乱搞)
http://poj.org/problem?id=1989 题意:求一个序列的最短非子序列长度l,即长度小于l的所有数的排列都是原序列的子序列(不一定要连续的),求l得最小值. 分析: 我们从左到右 ...
- 第二十一课:js属性操作的兼容性问题
上一课主要讲了属性的概念,用法,固有属性和自定义属性的区别,class属性操作的方法等,这一课主要讲一些有关属性操作的兼容性问题. IE6-IE8在一些表示URL的属性会返回补全的改过编码的路径,比如 ...
- json_decode详解
json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON 格式的字符串进行编码. json_decode的语法规则:json_decode ( string $j ...
- ”耐撕“团队 2016.3.21 站立会议3 2 1 GO!
”耐撕“团队 2016.3.21 站立会议 时间:2016.3.21 ① 17:20-17:45 ②17:55-18:10 总计40分钟 成员: Z 郑蕊 * 组长 (博客:http://www ...
- SQL基础知识总结(一)
1.union 和union all 操作符 1)union内部的select语句必须拥有相同的列,列也必须有相似的数字类型.同时,每条select语句中列的顺序相同. union语法(结果集无重复) ...
- Gson 的使用
Gson 的使用简介Gson 是 Google 开发的Java API,用于转换Java对象 和 Json 对象. 使用Maven 依赖<dependency> <groupId&g ...
- selenium ide 录制回放link链接报错
回放是出现以下错误: 也就是回放点击打开新的链接时出现这个错误, 这个问题说的是 点击此链接会新打开一个窗口 selenium1是不支持多窗口切换的 因此会卡在这里,也就录制不支持这个操作,但是很多书 ...
- nmap常用命令
1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...