P4047 JSOI2010 部落劃分 並查集

2022-03-30 07:29:55 字數 1096 閱讀 3807

思路:並查集+生成樹

提交:2次(雖然樣例都沒過但感覺是對的$qwq$(判邊少了一條))

題解:把所有點之間連邊,然後$sort$一遍,從小往大加邊,直到連第$n-k+1$條邊(相當於是破話$k$個連通塊的最短邊),記錄權值即為答案。

#include#include

#include

#include

#include

#define ull unsigned long long

#define ll long long

#define r register int

using

namespace

std;

#define pause (for(r i=1;i<=10000000000;++i))

#define in freopen("noipak++.in","r",stdin)

#define out freopen("out.out","w",stdout)

namespace

fread inline

bool isempty(const

char& ch)

inline

void gs(char*s)

} using fread::g; using

fread::gs;

namespace

luitaryi p[n];

#define x(i) p[i].x

#define y(i) p[i].y

struct edge

edge(

int uu,int vv,double ww)

inline

bool

operator

<(const edge& that)

}e[m];

inline

int getf(int x)

inline

void

main()

} printf(

"%.2lf

",ans);}}

signed main()

2019.07.22

P4047 JSOI2010 部落劃分

聰聰研究發現,荒島野人總是過著群居的生活,但是,並不是整個荒島上的所有野人都屬於同乙個部落,野人們總是拉幫結派形成屬於自己的部落,不同的部落之間則經常發生爭鬥。只是,這一切都成為謎團了 聰聰根本就不知道部落究竟是如何分布的。不過好訊息是,聰聰得到了乙份荒島的地圖。地圖上標註了n個野人居住的地點 可以...

P4047 JSOI2010 部落劃分題解

題意 給定一些點,要把這些點分為k個部落,問最近兩個部落間的最遠距離是多少。解法 二分答案 並查集檢測鴨!二分的時候要注意精度問題噢,eps開到1e 3會有乙個點過不去。開始看錯題意想半天。include include include include include include include...

洛谷 P4047 JSOI2010 部落劃分

這道題其實就是無線通訊網的雙倍經驗啦,只是在輸出的時候不同罷了。還是一樣的 kruskal 演算法,但是在求的時候,應該在 now n k 1 的時候結束。本來到 n k 就行了的,但是由於 n k 1 這條邊是在應該部落裡面的,不能算,所以要找到第乙個不在乙個部落裡面的邊。include usin...