kruskal 配並差集
模板題
#include
#include
#include
#include
using
namespace std;
const
int mx =
105;
//儲存節點上級
int f[mx]
;//儲存兩節點之間的距離
struct node
;//計算兩個節點之間的距離
double
length
(double a,
double b)
//排序op
bool
cmp(node a, node b)
//初始化陣列,設定每個節點的上級是自己
void
init()
//尋找x節點的最上級
intfin
(int x)
//將x節點和y節點連線起來
void
merge
(int x,
int y)
//判斷x節點和y節點是否已經連線
bool
same
(int x,
int y)
intmain()
}int q; cin >> q;
//輸入本來就連線的節點,直接連線,不用計算距離
while
(q--
)//按照距離從小到大排序
sort
(len, len + cnt, cmp)
;double sum =0;
for(
int i =
0; i < cnt; i++)}
cout << sum << endl;
}}
最小生成樹 基礎)杭電1233
這題是最小生成樹 kruscal演算法 這也是我第一次接觸。首先我來闡述一下 最小生成樹的過程及目的。目的 要在n個 城市之間 鋪設光纜,主要目標是要使這n個城市的任意兩個之間都可以通訊,但鋪設光纜的費用很高,且各個城市之間鋪設光纜的費用不同 另乙個目標是要使鋪設光纜的總費用最低。這就需要找到帶權的...
杭電1272 並差集
原題傳送門,並差集模板詳解鏈結,大佬並差集詳解鏈結。解題思路 1 判斷是否有環 2 判斷所有的房子是否連在一起。第一點可以通過same函式判斷,在輸入的時候就可以判斷 第二點可以先通過vis陣列標記,然後遍歷vis陣列,當vis i 1並且id i i的時候,說明i是最上面的父親。再符合條件的情況下...
杭電1198 並差集
原題傳送門,並差集模板函式簡單介紹,大佬的並差集詳解。寫在題前 因為最近學的並差集,因此專門搜的杭電並差集,也就是說,在看這個題之前我已經知道他是用並差集來做的。之前我碰到的題沒有涉及到二維這種情況,其實了解了思路還是很好做的,就是過程有點繁瑣,細節要注意。解題步驟 1 遍歷每個田地,對於每個田地,...