NOIP模擬 飛越行星帶(並查集)

2022-08-21 02:12:09 字數 605 閱讀 1431

考慮乙個非法直徑,如果將所有距離小於該直徑的點連邊(上下界縮為乙個點),那麼一定存在一條路徑聯通上下界。

所以用類似kruskal的做法,先將這些邊排序,然後從小到大加邊,如果加到一條邊使得上下界聯通,那麼邊權即為答案。

#includeusing namespace std;

const int maxn=510;

const int maxm=1e5+10;

int n,cnt;

double l;

double x[maxn],y[maxn];

int fa[maxn];

struct edge

void add(int x,int y,double z)

int find(int x)

double dis(int a,int b,int c,int d)

int main()

for(int i=0;i<=n+1;++i)

fa[i]=i;

sort(edge,edge+cnt+1);

for(int i=1;i<=cnt;++i)

} return 0;

}

noip模擬 心《並查集》

背景描述 不是一切深淵都是滅亡 不是一切滅亡都覆蓋在弱者的頭上 這也是一切 舒婷 有n個透明的盒子,每個盒子裡面有兩個不同顏色的球,總共有m種顏色。alice和bob又在玩遊戲,具體的,alice會從n個盒子裡面選出若干個,bob再從alice選出的盒子裡面選出一些 不能不選 如果在bob選出的盒子...

並查集,帶權並查集

題意 ignatius過生日,客人來到,他想知道他需要準備多少張桌子。然而一張桌子上面只能坐上相互熟悉的人,其中熟悉可定義成為a與b認識,b與c認識,我們就說a,b,c相互熟悉 例如a與b熟悉and b與c熟悉,d與e熟悉,此時至少需要兩張桌子。輸入 t表示樣例個數,n表示朋友個數,朋友從1到n編號...

並查集和帶權並查集

並查集是乙個很高效演算法,理解起來也很簡單,寫起來更簡單。fat i i 找到乙個點的祖先 int findfat int x 二中的方法肯定不好,因為如果資料比較極端,那麼並查集就退化成乙個鏈了 如果加入了路徑壓縮,並查集這個演算法就更高效了。int findfat int x 遞迴寫法 int ...