标签:test 优先 index.php dfs 计数 最小生成树 pid limit mit
5 8 1 2 12 1 3 9 1 4 11 1 5 3 2 3 6 2 4 9 3 4 4 4 5 6
19
1 #include <iostream> 2 #include <cstdio> 3 #include <climits> //INT_MAX 4 5 using namespace std; 6 7 #define MVN 101 8 9 typedef struct AdjMatrix 10 { 11 int w; 12 char *info; 13 }AM; 14 15 typedef struct MGraph 16 { 17 int vex[MVN]; 18 AM arc[MVN][MVN]; 19 int vexnum,arcnum; 20 }MG; 21 22 struct ue 23 { 24 int pr; 25 int w; 26 }countw[MVN],mi; 27 28 void creat(MG &G) 29 { 30 int i,j,w,k; 31 for(k=1;k<=G.vexnum;k++) 32 G.vex[k]=k; 33 for(k=1;k<=G.arcnum;k++) 34 { 35 scanf("%d %d %d",&i,&j,&w); 36 G.arc[i][j].w=w; 37 G.arc[j][i].w=w; 38 } 39 } 40 41 int count,sum; 42 void DFS(MG &G,bool *visited,int i) 43 { 44 count++; 45 visited[i]=true; 46 int k; 47 mi.w=INT_MAX; 48 mi.pr=0; 49 for(k=1;k<=G.vexnum;k++) 50 { 51 if(countw[k].w<mi.w && visited[k]==false) 52 { 53 mi.pr=k; 54 mi.w=countw[k].w; 55 } 56 } 57 if(mi.pr!=0) 58 { 59 for(k=1;k<=G.vexnum;k++) 60 { 61 if(countw[k].w>G.arc[k][mi.pr].w) 62 { 63 countw[k].pr=mi.pr; 64 countw[k].w=G.arc[k][mi.pr].w; 65 } 66 }//更新countw 67 sum+=G.arc[countw[mi.pr].pr][mi.pr].w; 68 DFS(G,visited,mi.pr); 69 } 70 } 71 72 int main() 73 { 74 MG G; 75 while(scanf("%d %d",&G.vexnum,&G.arcnum)!=EOF) 76 { 77 int k,o; 78 for(k=1;k<=G.vexnum;k++) 79 { 80 for(o=1;o<=G.vexnum;o++) 81 { 82 G.arc[k][o].w=INT_MAX; 83 } 84 }//邻接矩阵初始化 85 creat(G); 86 bool visited[MVN]={false}; 87 for(k=1;k<=G.vexnum;k++) 88 { 89 if(G.arc[1][k].w<INT_MAX) 90 { 91 countw[k].pr=1; 92 countw[k].w=G.arc[1][k].w; 93 } 94 else 95 countw[k].w=INT_MAX; 96 } 97 count=0; 98 sum=0; 99 DFS(G,visited,1); 100 if(count==G.vexnum) 101 printf("%d\n",sum); 102 else 103 printf("-1\n"); 104 } 105 return 0; 106 } 107 108 /*************************************************** 109 User name: *** 110 Result: Accepted 111 Take time: 0ms 112 Take Memory: 172KB 113 Submit time: 2016-11-09 21:00:48 114 ****************************************************/
标签:test 优先 index.php dfs 计数 最小生成树 pid limit mit
原文地址:http://www.cnblogs.com/Mimick/p/6048594.html