HDU 1233
来源:互联网 发布:淘宝模块怎么添加名称 编辑:程序博客网 时间:2024/05/16 15:52
HDU 1233 - 还是畅通工程 - 最小生成树
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
3 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
3 5
中文题面就不需要解释了,思路也不需要说了吧,大水体,裸prim就可以,只是数据量可能比较大需要用scanf
。
//// main.cpp// L//// Created by LucienShui on 2017/5/22.// Copyright © 2017年 LucienShui. All rights reserved.//#include <iostream>#include <algorithm>#include <set>#include <string>#include <vector>#include <queue>#include <map>#include <iomanip>#include <cstdio>#include <cstring>#include <cmath>#include <cctype>#define memset(a,b) memset(a,b,sizeof(a))#define il inline#define ull unsigned long longusing namespace std;const int maxn = 107, INF = 0x3f3f3f3f;int mp[maxn][maxn],dis[maxn];bool vis[maxn];il void read(int n);il int prim(int n);il void init(int n);int main() {#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin);#endif int n; while(scanf("%d",&n),n) { init(n); read(n); cout << prim(n) << endl; } return 0;}il void read(int n) { int m = (n*(n-1))>>1; for(int i=0,u,v,w ; i<m ; i++) { scanf("%d%d%d",&u,&v,&w); mp[u][v] = mp[v][u] = w; }}il void init(int n) { for(int i=1 ; i<=n ; i++) { mp[i][i]=INF; for(int j=i+1 ; j<=n ; j++) { mp[i][j]=mp[j][i]=INF; } } memset(vis,false);}il int prim(int n) { int cur=1,index=0,result={}; for(int i=2 ; i<=n ; i++) dis[i] = mp[cur][i]; vis[cur]=true; for(int i=1 ; i<n ; i++) { int minn = INF; for(int j=2 ; j<=n ; j++) { if(!vis[j] && minn > dis[j]) { index = j; minn = dis[j]; } } if(minn == INF) return -1;//no MST result += minn; vis[index]=true; for(int j=2 ; j<=n ; j++) { if(!vis[j] && dis[j] > mp[index][j]) { dis[j] = mp[index][j]; } } } return result;}
阅读全文
0 0
- hdu 1233
- hdu 1233
- hdu 1233
- HDU 1233
- hdu 1233
- hdu-1233
- hdu 1233
- HDU 1233
- HDU 1233
- HDU 1233
- HDU 1233
- HDU 1233
- hdu 1233
- HDU 1233
- hdu 1233
- hdu 1233 kruskal
- HDU-1233(prim写法)
- HDU 1233 Prim
- python+selenium打印当前页面的titl和url
- 自定义Dialog回传数据给Activity
- 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
- Linux内存管理(四)——物理内存管理
- iOS学习之路07
- HDU 1233
- declared inside parameter list
- mysql 系统管理参考手册
- mysql 在doc窗口下中文乱码问题
- vs2012错误“类不能支持automation操作”
- Java的架构师
- 蓝桥杯java第三届决赛第四题--DNA比对
- 判断Integer值相等最好不用==最好使用equals
- jquery遍历数组与筛选数组的方法