hdu Constructing Roads
来源:互联网 发布:男朋友生日钱包 知乎 编辑:程序博客网 时间:2024/05/29 07:12
题意:给出一个数N,表示有N个城市,接下来的矩阵就表示,各城市之间的连通价格,
然后给一个数M,接下的M行表示,每两个数为两个城市已经连通。(那么我们可以表示为零);
这个题可以直接用模板解决。
#include<stdio.h>#include<string.h>const int maxn = 110;#define INF 0xfffffffint n,m,map[maxn][maxn],lowcost[maxn],vis[maxn];int prim(){ int i,j,k; int mins,yes,sum=0; for(i=1;i<=n;i++) lowcost[i] = map[1][i]; memset(vis,0,sizeof(vis)); vis[1]=1; for(;;) { mins=INF; yes=-1; for(j=1;j<=n;j++) { if(!vis[j] && lowcost[j] <mins) { mins = lowcost[j]; yes=1; k=j; } } if(yes==-1) break; sum+=mins; vis[k]=1; for(j=1;j<=n;j++) if(!vis[j] && lowcost[j] > map[k][j]) lowcost[j] = map[k][j]; } return sum;}int main(){ int i,j; int x,y; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&map[i][j]); scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d%d",&x,&y); map[x][y]=map[y][x] = 0; } printf("%d\n",prim()); } return 0;}
- HDU 1102 Constructing Roads
- HDU 1102 Constructing Roads
- Hdu-1102 Constructing Roads
- Hdu-1102 Constructing Roads
- hdu 1102 Constructing Roads
- HDU 1102 Constructing Roads
- hdu 1102 Constructing Roads
- hdu 1102 Constructing Roads
- HDU 1102 Constructing Roads
- HDU 1102 Constructing Roads
- HDU 1102 Constructing Roads
- hdu 1102 Constructing Roads
- Hdu 1102 - Constructing Roads
- hdu 1102 Constructing Roads
- HDU 1102 Constructing Roads
- HDU 1102 Constructing Roads
- hdu Constructing Roads
- hdu 2527 Constructing Roads
- 利用UltraISO制作Ubuntu LiveCD
- (step5.1.6)hdu 1272(小希的迷宫——并查集)
- 多线程并发中volatile变量的原理
- 分页联合查询sql 注意事项
- 人类和上帝
- hdu Constructing Roads
- android.util.Log http://blog.lytsing.org/archives/236.html
- 定位线程Segment fault (SIGSEGV)的方法
- wikioi p1075 明明的随机数
- 学习计算机,学习电脑,打字是一个开始,下面,分享一下个人收集的技巧!
- Java Programming: simple Polymorphic programming
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
- Struts2的属性驱动与模型驱动的区别
- JSP/Servlet 中的汉字编码问题