51nod 1212 无向图最小生成树(最小生成树)

#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 1001#define M 99999999int num[N];int n,m;int tt,sum;int map[N][N];int p[N];void dijkstra() {int s=1,i,j;memset(p,0,sizeof(p));memset(num,M,sizeof(num));for(i=1; i<=n; i++) {num[i] = map[s][i];}num[s] = 0;p[s] = 1;for(i=0; i<n; i++) {int min = M,k;for(j=1; j<=n; j++) {if(p[j] == 0 && num[j]<min) {min = num[j];k = j;}}if(min == M) {break;}tt = tt + min;p[k] = 1;for(j=1; j<=n; j++) {if(p[j]==0 && num[j]>map[k][j]) {num[j] = map[k][j];}}}printf("%d\n",tt);}int main() {int T,i,j;int a[1001];while(scanf("%d%d",&n,&m)!=EOF) {tt = 0;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){map[i][j] = M;}map[i][i] = 0;}int x,y,z;for(i=0; i<m; i++) {scanf("%d%d%d",&x,&y,&z);if(map[x][y]>z){map[x][y] = z;map[y][x] = z;}}dijkstra();}return 0;}

,世界上那些最容易的事情中,拖延时间最不费力。

51nod 1212 无向图最小生成树(最小生成树)

相关文章:

你感兴趣的文章:

标签云: