暢通工程(最小生成樹)

2022-05-17 22:57:21 字數 840 閱讀 4381

首先要判斷能否構成生成樹,剛開始的思路是用hash遍歷城市,看是否所有的城市都記錄進取,被測試資料誤導,如果給這組資料(1,2)(3,4)這麼沒辦法構成單樹。

#include#include

const

int inf=0x7fffffff

;const

int maxn=110

;int

hash[maxn];

intpre[maxn];

intmap[maxn][maxn];

intdist[maxn];

intn,m,ans,flag;

void

prim()

dist[

1]=0

; p[

1]=true

;

for(i=1; i<=n-1; i++)

}if(k==0

)//判斷是否有最小生成樹

p[k]=true

; ans+=dist[k];

for(j=1; j<=n; j++)}}

}int

main()

for(i=1; i<=m; i++)

//for(i=1; i<=n; i++)

//if(hash[i]!=1) break;

ans=flag=0

; prim();

if(flag) printf("

?\n"

);

else printf("

%d\n

",ans);

}return0;

}

還是暢通工程 最小生成樹

題目描述 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。輸入 測試輸入包含若干測試用例。每個測試用例的第1行給出村...

A 還是暢通工程(最小生成樹)

點選開啟鏈結 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。input測試輸入包含若干測試用例。每個測試用例的第1...

暢通工程 最小生成樹prim

題目 暢通工程 time limit 1000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 36652 accepted submission s 16298 problem descript...