hdoj1102 Constructing Roads(最小生成树)
来源:互联网 发布:matlab数据毛刺 编辑:程序博客网 时间:2024/06/06 13:20
来源:http://acm.hdu.edu.cn/showproblem.php?pid=1102
求最小生成树,我这里用的是prim算法(数据结构里的背过的模版)
将已经有路的村庄之间的距离设为0.
代码如下:
#include<stdio.h>#include<iostream>#include<string>#define INF 0x7ffffffusing namespace std;int main(){int map[101][101];int lowcost[101],vis[101];int n,a,b,num,i,j,min,t,all;while(~scanf("%d",&n)){for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&map[i][j]);scanf("%d",&num);for(i=0;i<num;i++){scanf("%d%d",&a,&b);map[a][b]=map[b][a]=0;}memset(vis,0,sizeof(vis));for(i=1;i<=n;i++) lowcost[i]=map[1][i];vis[1]=1;all=0;for(i=2;i<=n;i++){min=INF;for(j=1;j<=n;j++){if(min>lowcost[j]&&!vis[j]){min=lowcost[j];t=j;}}vis[t]=1;all+=min;for(j=1;j<=n;j++){if(lowcost[j]>map[t][j]&&!vis[j])lowcost[j]=map[t][j];}}printf("%d\n",all);}return 0;}
阅读全文
0 0
- hdoj1102 Constructing Roads(最小生成树)
- hdoj1102-Constructing Roads(Kruskal)
- 【最小生成树】Constructing Roads
- POJ 2421 Constructing Roads(最小生成树)
- POJ2421 Constructing Roads [最小生成树 prim]
- HDOJ 1102 Constructing Roads(最小生成树)
- POJ 2421 Constructing Roads 最小生成树
- Constructing Roads(最小生成树)
- POJ 2421 Constructing Roads 最小生成树
- hdu1102 Constructing Roads 最小生成树+prim
- POJ 2421 Constructing Roads 最小生成树
- hdu1102 Constructing Roads 最小生成树Prim
- HDU1102 Constructing Roads 最小生成树
- hdu 1102 Constructing Roads 最小生成树
- Constructing Roads - HDU 1102 最小生成树
- hdu1102 Constructing Roads 最小生成树Prim
- hdu 1102 Constructing Roads 最小生成树
- Hdu1102 - Constructing Roads - 最小生成树
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- 11.计算容器最大储水量
- iOS 点击Tableview中的Button来确定Section和Row
- Android启动模式之SingleTask和onNewIntent方法
- 特征值和特征向量的数学表示
- hdoj1102 Constructing Roads(最小生成树)
- 微信中浏览网站分享图片描述
- python程序后台运行命令
- javascript实现图片循环渐显播放的代码(图片轮播)
- 项目中配置多个target及podfile文件配置
- 优先队列
- linux下动态链接库(.so)的显式调用和隐式调用
- Linux:进程实例信息(/proc)
- 模糊查询(LIKE)AND (PATINDEX() . CHARINDEX())