HDU.1233 还是畅通工程(Prim)
来源:互联网 发布:网络里麻瓜是什么意思 编辑:程序博客网 时间:2024/06/05 21:11
HDU.1233 还是畅通工程(Prim)
题意分析
- 首先给出n,代表村庄的个数
- 然后出n*(n-1)/2个信息,每个信息包括村庄的起点,终点,距离,
- 要求求出最小生成树的权值之和。
- 注意村庄的编号从1开始即可
- 直接跑prim
代码总览
#include <bits/stdc++.h>#define nmax 105#define inf 1e8+7using namespace std;int mp[nmax][nmax];int n;int totaldis =0;void prim(){ int lowcost[nmax]; int path[nmax]; for(int j = 1;j<=n;++j){ lowcost[j] = mp[1][j]; path[j] = 1; } path[1] = 0; int nowmin,nowminid; for(int i =2 ;i<=n;++i){ nowmin = inf; nowminid = 0; for(int j = 2;j<=n;++j){ if(nowmin > lowcost[j] && lowcost[j] != 0){ nowmin = lowcost[j]; nowminid = j; } } totaldis += nowmin; lowcost[nowminid] = 0; for(int j = 2;j<=n;++j){ if(mp[nowminid][j] < lowcost[j]){ lowcost[j] = mp[nowminid][j]; path[j] = nowminid; } } }}int main(){ //freopen("in.txt","r",stdin); while(scanf("%d",&n) != EOF && n){ int sta,end,dis; totaldis = 0; for(int i = 1; i<=n;++i) for(int j = 1;j<=n;++j) mp[i][j] = inf; for(int i = 1; i<=n*(n-1)/2 ;++i){ scanf("%d %d %d",&sta,&end,&dis); mp[sta][end] = mp[end][sta] = dis; } prim(); printf("%d\n",totaldis); } return 0;}
阅读全文
0 0
- hdu 1233 还是畅通工程(prim)
- HDU.1233 还是畅通工程(Prim)
- HDU 1233 还是畅通工程(prim)
- hdu 1233 还是畅通工程(prim||kruskal)
- #HDU 1233 还是畅通工程 【Prim算法】
- HDU 1233还是畅通工程【Prim】
- HDU-1233-还是畅通工程(prim)
- HDU-1233 还是畅通工程(prim)
- hdu-1233-还是畅通工程(普里姆(Prim)算法)
- HDU-#1233 还是畅通工程(Prim & Kruskal)
- HDU 1233 还是畅通工程(kruskal&&prim)
- hdu 1233 还是畅通工程 (MST,Prim)
- hdu 1233 还是畅通工程(Prim最小生成树)
- 杭电hdu 1233 还是畅通工程 prim
- hdu 1233 还是畅通工程--最小生成树prim
- HDU 1233 还是畅通工程---prim求最小生成树
- hdu 1233 还是畅通工程(最小生成树prim)
- hdu 1233 还是畅通工程 最小生成树prim
- 关于HTTP请求的论述
- [poj3159]
- checkbox多项选择当前的position信息提交
- 剑指offer的java实现(1)
- hdu1247-trie树
- HDU.1233 还是畅通工程(Prim)
- linux中poll,epoll,select区别,等等
- Android 自定义控件基础 canvas paint
- 百练 2775:文件结构“图”(递归法)
- Java开发——JavaScript初步学习
- python 个人学习笔记1
- 基于RESTful类型的webService
- 网络直播步入“剩者为王”的时代,三大层面将成决定性因素
- 关于MyBatis在eclipse中的配置及简单的增删改查操作