題解:
prim
分析:從輸出要求中就可以看出本題是prim演算法求最小生成樹,所以,只需要實現就可以了。
那麼,我們來回顧一下prim演算法
1.設有2個集合v1,v2(預設有5個點)
2.在圖中找到離當前第乙個點最近的點,我們假設是2,然後用2去鬆弛每一條邊
3.重複第2步直到迴圈n-1次
那麼題目就解決了,由於題目要求0邊已經建造,所以我們如果找到0邊,則跳過,否則記錄下來,最後輸出
#include #include #include #include using namespace std;
const int inf=1<<30;
int n,ans=0;
int dis[110],map[110][110],vis[110];
int f[110][2],to[110];
void readdata()
}void prim()
{ int minx,k=1,tot=0,cnt=0;
for(int i=1;i<=n;i++)
dis[i]=inf;
dis[1]=0;
for(int i=1;i<=n;i++)
{ minx=inf;
for(int j=1;j<=n;j++)
{ if(dis[j]
Code Vs 1003 電話連線
比較水的題目,裸prim.下面 寫得有點麻煩.僅供參考.其實不用寫那麼多記錄.我是蒟蒻.qaq include include include include include include include includeusing namespace std const int m 105 con...
codevs 1003 電話連線
拿到這個題,看到說要用prim演算法,感覺是個模板題,不過好像自己也沒怎麼寫過關於最小生成樹的題目,就嘗試著自己寫乙個prim演算法吧。基本思路是in i 維護每個i是否在生成樹裡面,用優先順序佇列儲存邊struct,過載小於運算子,但是不知道為什麼就是wa了。現在也還沒相通。然後就去看題解了,不過...
Codevs 1003 電話連線
時間限制 1 s 空間限制 128000 k 題目等級 gold description 乙個國家有n個城市。若干個城市之間有 線連線,現在要增加m條 線 線當然是雙向的了 使得任意兩個城市之間都直接或間接經過其他城市有 線連線,你的程式應該能夠找出最小費用及其一種連線方案。輸入描述 input d...