傳送門
給定n個村子,和每個村子之間的距離,現在要求連線這n個村子的最小距離
這題典型的最小生成樹模板題,krusal演算法和prim演算法都可以達到要求
並且這題的資料量不大,並且是完全圖,利用鄰接矩陣做就好
#include
const
int maxn =
1e2+2;
int g[maxn]
[maxn]
;int n;
int dist[maxn]
;//利用prime演算法儲存剩餘點到最小生成樹的最小距離
int visit[maxn]
;//記錄點是否加入最小生成樹點集之中。
intprime()
int ans =0;
for(
int i=
1;i<=n;
++i)ans+
=dist[i]
;return ans;
}int
main()
printf
("%d\n"
,prime()
);}}
HDU 1233 還是暢通工程
題意 有1 n個村莊,村莊與村莊之間要鋪設公路,在使任意兩個村莊都能相互到達的前提下使修路的花費最少 解題思路 這題是典型的最小生成樹的題,可以選擇prim演算法或者kruskal演算法。prim使用與稀疏圖,二此題中的邊有n n 1 2條,因此最好是用kruskal演算法。kruskal演算法的思...
hdu 1233 還是暢通工程
這個題我用的貪心和並查集來解決的。kruskal演算法 首先用貪心對長度排序,然後按照長度從小到 擇連線,沒有被聯通的則直接連,要注意乙個問題就是如果4個村莊是1 4聯通了,2 3聯通了,那麼肯定還要讓這兩個集合聯通 用並查集 因此我用了乙個p來表示不同的集合。ac include include ...
hdu 1233 還是暢通工程
這個題我用的貪心和並查集來解決的。kruskal演算法 首先用貪心對長度排序,然後按照長度從小到 擇連線,沒有被聯通的則直接連,要注意乙個問題就是如果4個村莊是1 4聯通了,2 3聯通了,那麼肯定還要讓這兩個集合聯通 用並查集 因此我用了乙個p來表示不同的集合。ac include include ...