//克鲁斯卡尔
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = ;
struct node
{
int begin, end, len;
}cun[maxn];
int n, fa[maxn], ans, m; bool cmp(node a, node b)
{
return a.len<b.len; //按长度有小到大排序
} void init()
{
for (int i = ; i <= n; i++)
{
fa[i] = i;
}
} int find(int x)
{
if (x == fa[x])
return fa[x];
else
return fa[x] = find(fa[x]);
} void join(int a, int b)
{
a = find(a);
b = find(b);
if (a != b)
fa[b] = a;
} int kruskal()
{
sort(cun, cun + m, cmp);
init(); //初始化并查集
ans = ;
for (int i = ; i<m; i++)
{
if (find(cun[i].begin) != find(cun[i].end)) //一条边的两个端点不在同一个集合,则选他,并合并
{
join(cun[i].begin, cun[i].end);
ans += cun[i].len;
}
}
return ans;
} int main()
{
while (cin >> n)
{
if (n == ) break;
m = n*(n - ) / ;
for (int i = ; i<m; i++)
cin >> cun[i].begin >> cun[i].end >> cun[i].len;
cout << kruskal() << endl;
}
return ;
}
 //prim
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std; #define INF 0x7fffffff
# define MAXN
typedef long long int LL; LL n, m;
LL cmpa[MAXN][MAXN], book[MAXN], dis[MAXN]; int main()
{
LL a, b, weight, ans, p, q, f1, f2, minn, mark;
while (scanf("%I64d", &n) && n)
{
//初始化 这题prime算法合适,边那摩多,都是完全图了
for (LL i = ; i<MAXN; i++)
{
dis[i] = INF;
for (LL j = ; j<MAXN; ++j)
cmpa[i][j] = INF;
} memset(book, , sizeof(book));
ans = ; for (LL i = ; i<n*(n - ) / ; ++i)
{
scanf("%I64d %I64d %I64d", &a, &b, &weight);
cmpa[a][b] = cmpa[b][a] = weight;
} //连通图
book[] = ;
dis[] = -; for (LL t = ; t<n; ++t)
{
for (LL i = ; i <= n; ++i)
{//更新dis中的值
for (LL j = ; j <= n; ++j)
{
if (book[j] && dis[i]>cmpa[i][j])
{ //j在树中
dis[i] = cmpa[i][j];
}
}
} //选点建树
minn = INF, mark = ;
for (LL i = ; i <= n; ++i)
{
if (book[i])
continue;
else
{
if (dis[i] < minn)
{
minn = dis[i];
mark = i;
}
}
} if (minn != INF)
{
ans += minn;
book[mark] = ;
dis[mark] = -;
} }
cout << ans << endl; }
return ;
}

hdu1233 还是畅通工程 基础最小生成树的更多相关文章

  1. hdu1233 继续畅通工程 (最小生成树——并查集)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  2. HDU1233 还是畅通工程【最小生成树】

    题意: 求出连接各个村庄最小的公路总长度,把最小公路总长度求出来. 思路: 最小生成树原理,带入数据求得. 代码: prim: #include<iostream> #include< ...

  3. hdu1879 继续畅通工程 基础最小生成树

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> u ...

  4. hdu1863 畅通工程 基础最小生成树

    #include <iostream> #include <cstdio> #include <algorithm> #define N 110 #define M ...

  5. HDU-1233 还是畅通工程 (prim 算法求最小生成树)

    prim 算法求最小生成树 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  6. 最小生成树: HDU1233还是畅通工程

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  7. HDU1875——畅通工程再续(最小生成树:Kruskal算法)

    畅通工程再续 Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当 ...

  8. HDU1879--继续畅通工程(最小生成树)

    Problem Description 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计 ...

  9. HDU1233--还是畅通工程(最小生成树)

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...

随机推荐

  1. Java经常使用类及其经常用法

    1.ArrayList java.util.ArrayList<E> add(E e) //插入尾部 add(int index, E element) remove(int index) ...

  2. npm的常用配置

    第一次使用需要初始化 npm init -y npm-tut { "requires": true, "lockfileVersion": 1, "d ...

  3. MD5介绍及Windows下对文件做md5校验。

    MD5介绍参考百度百科: 摘要如下: MD5 校验和(checksum)通过对接收的传输数据执行散列运算来检查数据的正确性. 一个散列函数,比如 MD5,是一个将任意长度的数据字符串转化成短的固定长度 ...

  4. (转)OutOfMemory时抓取heap 快照

    转自:https://testerhome.com/topics/579 首先说一下,在程序没有崩溃的时候如何抓取heap快照.这个大家应该都知道,在ddms中自带此功能.   见上图首先我们选中一个 ...

  5. Spring Boot JPA 连接数据库

    本文将介绍怎样在Spring Boot project中加入JPA作为持久化方式. 改动 pom.xml 依赖 与上一篇介绍的 jdbc 不同的是 spring-boot-starter-jdbc 改 ...

  6. sanic官方文档解析之路由

    1,路由,路由相当于一个网址的地址,来确定网址的位置和唯一性 当http://server.url/被允许访问服务器,当最后的"/"通过路由匹配到了业务逻辑处理的函数,将会返回一个 ...

  7. liberOJ#6006. 「网络流 24 题」试题库 网络流, 输出方案

    #6006. 「网络流 24 题」试题库     题目描述 假设一个试题库中有 n nn 道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取 m mm 道题组成试卷.并要求 ...

  8. SpringInAction4笔记——web

    1,java配置 extends AbstractAnnotationConfigDispatcherServletInitializer public class SpitterWebInitial ...

  9. HDOJ 5045 Contest

    状压DP.. . . Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  10. 贞鱼传教&&贞鱼传教(数据加强版)

    http://acm.buaa.edu.cn/problem/1381/ 贞鱼传教[问题描述] 新的一年到来了,贞鱼哥决定到世界各地传授“贞教”,他想让“贞教”在2016年成为世界第四大宗教.说干就干 ...