hdu 畅通工程
来源:互联网 发布:好看的漫画推荐 知乎 编辑:程序博客网 时间:2024/06/07 09:00
不多说,用模板,注意?是没有访问到全部的点。
#include<stdio.h>#include<string.h>const int maxn = 110;#define INF 0xfffffffint map[maxn][maxn],lowcost[maxn],vis[maxn],n,m;int prim(){ int i,j,k,mins,yes; int sum=0; for(i=1;i<=m;i++) lowcost[i] = map[1][i]; memset(vis,0,sizeof(vis)); vis[1]=1; for(;;) { mins=INF; yes=-1; for(j=1;j<=m;j++) { if(!vis[j] && lowcost[j] < mins) { mins=lowcost[j]; k=j; yes=1; } } if(yes==-1) break; sum+=mins; vis[k]=1; for(j=1;j<=m;j++) { if(!vis[j] && lowcost[j] > map[k][j]) lowcost[j] = map[k][j]; } } for(i=1;i<=m;i++) if(!vis[i]) return 0; return sum;}int main(){ int i,j; int x,y,z; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0) break; for(i=1;i<=m;i++) { for(j=1;j<=m;j++) map[i][j]=INF,map[j][i]=INF; map[i][i]=0; } for(i=1;i<=n;i++) { scanf("%d%d%d",&x,&y,&z); if(z<map[x][y] ) map[x][y] = z; if(z<map[y][x]) map[y][x] = z; } int temp = prim(); if(temp ==0) printf("?\n"); else printf("%d\n",temp); } return 0;}
- HDU 1863 畅通工程
- Hdu-1232 畅通工程
- hdu 1863 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1863 畅通工程
- HDU 1863 畅通工程
- hdu 1863 畅通工程
- hdu 1232 畅通工程
- HDU 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1863 畅通工程
- hdu 1232 畅通工程
- hdu 1232 畅通工程
- hdu 1863 畅通工程
- Hdu 1232 畅通工程
- HDU 1863 畅通工程
- 玩转Linux打包指令——tar
- 我的.bash_profile
- 用js获取radio选中的值
- UVAlive 2322 (13.08.23)
- UVA839 - Not so Mobile
- hdu 畅通工程
- 我的.bash_profile .bashrc .emacs
- LeetCode - Binary Tree Level Order Traversal II
- join方法的使用
- 黑马程序员——二、java基础之语言基础组成.part1(2)
- TexturePacker 非常棒的图像处理工具
- hdu 畅通工程再续。
- hdu3790解题报告
- 程序员技术练级攻略