【wikioi】1078最小生成树 floyd 40分C源码
2013-12-16 21:50
309 查看
//floyd #include<stdio.h> #include<stdlib.h> #define INF 120000 #define MAXN 110 int dist[MAXN][MAXN]; int main(void) { int i,j; int n; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { scanf("%d",&dist[i][j]); if(!dist[i][j]) dist[i][j]=INF; } } int k; for(k=1;k<=n;k++) { for(i=1;i<=n;i++) { if(i==k) continue; for(j=1;j<=n;j++) { if(j==k||j==i) continue; else if(dist[i][k]+dist[k][j]<dist[i][j]) { dist[i][j]=dist[i][k]+dist[k][j]; } } } } int vis[MAXN]={0}; int num=1; int min=INF,sum=0; int point=1; while(num<n) { min=INF; for(i=1;i<=n;i++) { if((min>dist[point][i])&&(vis[i]==0)&&(i!=point)) { min=dist[point][i]; k=i; } } vis[point]=1; num++; sum+=min; point=k; } printf("%d\n",sum); return 0; }
相关文章推荐
- 【wikioi】1078最小生成树 floyd 改 仍40分代码
- 【wikioi】1078最小生成树 prim 100分C源码
- wikioi-天梯-通过初赛-最小生成树-1078:最小生成树
- wikioi 1078 最小生成树 Kruskal算法
- wikioi 1078 最小生成树
- 1078 最小生成树 prim
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
- codevs 1078 最小生成树
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- 1078 最小生成树
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- CODEVS 1078最小生成树
- code[vs]最小生成树 1078,1231
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)(转)
- 1078 最小生成树
- 最小生成树 之 CODE[VS] 1078 最小生成树
- 【codevs 1078】最小生成树
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- 图(Graph)——最小生成树、最短路径、Kruskal、Dijkstra、Floyd