HDU:还是畅通工程
来源:互联网 发布:核冬天 知乎 编辑:程序博客网 时间:2024/06/03 10:05
题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1233
思路:
最短路径模板题,这里谈一下写最短路径的题目时应该必须注意到的事情,虽然起点是随机选定的,但是由于起点其独特性,必须分开讨论。千万不要,加入循环里面随便讨论。因为这样很不容易说清楚的。
贴上代码:
#include <iostream>#include<cstdio>#include<cstring>using namespace std;#define MAX 105#define INF 9999999int map[MAX][MAX];bool vis[MAX];int dis[MAX];int N;int ans;void Prim(){ int i,j,v,Min; for(i=1;i<=N;i++) { dis[i]=map[1][i]; vis[i]=0; } //确定1是起点 dis[1]=0; vis[1]=1; ans=0; //一定要注意起点。 //起点并不包含在循环里面 //分开讨论 for(i=2;i<=N;i++) { Min=INF; for(j=2;j<=N;j++) { if(!vis[j]&&dis[j]<Min){ Min=dis[j]; v=j; } } vis[v]=1; if(Min!=INF)//这一句一一定不能少 ans=ans+Min; for(j=2;j<=N;j++) { if(!vis[j]&&dis[j]>map[v][j]) dis[j]=map[v][j]; } } printf("%d\n",ans); return;}int main(){ int i,j,a,b,c,S; while(scanf("%d",&N)!=EOF,N) { for(i=1;i<=N;i++) { map[i][i]=0; } S=N*(N-1)/2; for(i=1;i<=S;i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=c; } Prim(); } return 0;}
阅读全文
1 0
- hdu 还是畅通工程
- HDU 还是畅通工程
- hdu 还是畅通工程
- [hdu]还是畅通工程
- HDU 还是畅通工程
- hdu 还是畅通工程
- HDU:还是畅通工程
- HDU-还是畅通工程
- 还是畅通工程 HDU
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- HDU 2017 多校联赛-1001 Add More Zero
- RxPermission权限使用
- 35分钟让你弄懂机器学习中的数学公式-课堂讲义备注
- JAVA成绩分析
- 开发中常见的两种文本排版显示
- HDU:还是畅通工程
- Prim(普里姆)求小生成树 模板
- 03. JSP 动作标签
- mysql5.7 json类型字段中文乱码
- android开发 之 常用的drawable(二)
- 智能音乐搜索功能实现(一)
- Unity知识点详解面试题大全
- 20170725——学习总结
- SQL SERVER 取字符串的首字母