POJ 2485 Highways (prim最小生成树)
生活随笔
收集整理的這篇文章主要介紹了
POJ 2485 Highways (prim最小生成树)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于終于生成的最小生成樹中最長邊所連接的兩點來說 不存在更短的邊使得該兩點以不論什么方式聯通
對于本題來說 最小生成樹中的最長邊的邊長就是使整個圖聯通的最長邊的邊長?
由此可知僅僅要對給出城市所抽象出的圖做一次最小生成樹 去樹上的最長邊就可以
#include<bits/stdc++.h> using namespace std; int T,n,a,dist[1020],m[1020][1020]; void prim() {bool p[1020];for(int i=2;i<=n;i++){p[i]=false;dist[i]=m[1][i];}dist[1]=0,p[1]=true;for(int i=1;i<=n-1;i++){int min=INT_MAX,k=0;for(int j=1;j<=n;j++){if(!p[j]&&dist[j]!=0&&dist[j]<min){min=dist[j];k=j;}}if(k==0)return;p[k]=true;for(int j=1;j<=n;j++){if(!p[j]&&m[k][j]!=0&&(dist[j]==0||dist[j]>m[k][j]))dist[j]=m[k][j];}} } int main() {scanf("%d",&T);for(int kase=1;kase<=T;kase++){scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%d",&a);m[i][j]=a;}prim();printf("%d\n",dist[max_element(dist+1,dist+n+1)-dist]);}return 0; }轉載于:https://www.cnblogs.com/mengfanrong/p/4004086.html
總結
以上是生活随笔為你收集整理的POJ 2485 Highways (prim最小生成树)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LoadRunner常用术语
- 下一篇: 最短路最新心得