問題:
/**
1003 **連線 */
#include
#define maxn 100
#define maxc 10001
#define debug 1
struct _lineline[maxn]; // **連線表
struct _citycity[maxn + 1]; // 城市連線狀態結構體
int cost[maxn + 1][maxn + 1]; // **線費用矩陣
int n; // 城市數目
int main(int argc, char *argv)
#endif
#ifdef debug
fscanf(fp, "%d", &n);
#else
scanf("%d", &n);
#endif
for(xi = 1; xi <= n; xi++)
}// 初始化已連線城市
for(xi = 1; xi <= n; xi++)
city[1].c = 0; // 城市1作為起點
line_count = 0;
line_cost = 0;
for(count = 1; count <= n; count++)
} city[next].v = 1;
// 更新未接通城市接通費用
for(xi = 1; xi <= n; xi++)
} // 如果新接通城市費用不為0,則將其新增到**連線表
if(minc != 0)
}printf("%d\n", line_count);
for(count = 0; count < line_count ; count++)
printf("%d\n", line_cost);
#ifdef debug
fclose(fp);
#endif
return
0;}
Code Vs 1003 電話連線
比較水的題目,裸prim.下面 寫得有點麻煩.僅供參考.其實不用寫那麼多記錄.我是蒟蒻.qaq include include include include include include include includeusing namespace std const int m 105 con...
codevs 1003 電話連線
題解 prim 分析 從輸出要求中就可以看出本題是prim演算法求最小生成樹,所以,只需要實現就可以了。那麼,我們來回顧一下prim演算法 1.設有2個集合v1,v2 預設有5個點 2.在圖中找到離當前第乙個點最近的點,我們假設是2,然後用2去鬆弛每一條邊 3.重複第2步直到迴圈n 1次 那麼題目就...
codevs 1003 電話連線
拿到這個題,看到說要用prim演算法,感覺是個模板題,不過好像自己也沒怎麼寫過關於最小生成樹的題目,就嘗試著自己寫乙個prim演算法吧。基本思路是in i 維護每個i是否在生成樹裡面,用優先順序佇列儲存邊struct,過載小於運算子,但是不知道為什麼就是wa了。現在也還沒相通。然後就去看題解了,不過...