hdu 1233(还是畅通工程)
来源:互联网 发布:手机棋牌麻将软件 编辑:程序博客网 时间:2024/05/21 06:28
作为个人的第一篇博客,我还是必须要说些什么的!
首先,今天是我写博客的第一天,然后在以后的时间里我还是会把以前学的一些算法整理后再写在博客上的;
然后,就是我的第一篇文章了,其实也就是结题报告,个人也没想到第一篇博客会是结题报告,总之了,以后的博客就是解题报告和算法讲解了!
最后,也就不讲废话了,附上代码(由于时间关系这次就不写解析了)!
# include <iostream># include <cstdio># include <string># include <cstring>using namespace std;const int inf = 0xfffff;const int maxx = 102; ///这里是定义常量maxx方便后面使用int map[maxx][maxx];int dis[maxx];bool vis[maxx];int prim(int n) ///核心内容n为最小生成树的大小{ int sum=0; memset(vis,0,sizeof(vis)); ///先把标记bool全部赋值为0 for(int i=1; i<=n; i++) { dis[i] = map[1][i]; ///先初始化距离 } vis[1] = 1; for(int i=1; i<n; i++) { int minn = inf, k; for(int j=1; j<=n; j++) { if(!vis[j]&&minn>dis[j]) { minn = dis[j]; k = j; } } sum = sum + minn; ///sum为最短路程总和,所以每次都要加上最短的路径 if(minn==inf) return -1; ///如果minn等于inf就表示没有最短的路径,要退出搜索,此题可不加(因为这题没作要求) vis[k] = 1; for(int j=1; j<=n; j++) ///这里是用来更新最小生成树的路径的 { if(dis[j]>map[k][j]) dis[j] = map[k][j]; } } return sum;}int main(){ int n; int m; while(scanf("%d",&n)&&n) { m = ((n-1)*n)/2; int a, b, c; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i==j) map[i][j] = 0; else map[i][j] = inf; } } for(int i=1; i<=m; i++) { scanf("%d%d%d",&a,&b,&c); if(map[a][b]>c) { map[a][b] = map[b][a] = c; } } int d = prim(n); printf("%d\n",d); } return 0;}
0 0
- hdu 1233(还是畅通工程)
- 还是畅通工程 (HDU 1233)
- 【1233】还是畅通工程 (HDU)
- HDU -- 1233 还是畅通工程(mst)
- HDU 1233 还是畅通工程 (MST)
- HDU:1233 还是畅通工程(kruskal)
- HDU 1233 还是畅通工程(模板)
- hdu 1233 (还是畅通工程)
- hdu 1233 还是畅通工程(prim)
- 【hdu 1233】还是畅通工程(kruskal)
- HDU 1233 还是畅通工程(Kruskal)
- hdu 1233 还是畅通工程(MST)
- HDU.1233 还是畅通工程(Prim)
- HDU 1233 还是畅通工程(prim)
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- 梯度下降算法(Gradient Descent)
- NOTE 4----linkserver的创建
- 参加远光面试反思--阴沟翻船记
- zoj 3780 Paint the Grid Again (拓扑排序)
- 对技术改变世界的思考
- hdu 1233(还是畅通工程)
- XAMPP DEDE Discuz安装配置
- 动态IP或无公网IP时外网远程监控内网视频监控摄像头
- 面试题:把数组中的数分为两组,使得两组和相差最小 timus 1005. Stone Pile
- cmd 下命令
- Linux查看版本及内核
- Internet Explorer里的条件注释
- github在官网创建仓库
- 20060221-Tracing George