帶權並查集

2022-05-16 05:36:10 字數 881 閱讀 6895

並查集記錄集合(set)的關係,而帶權並查集還要記錄元素之間的關係

經典例題:

[hdu3038]how many answers are wrong

題目大意,給出幾個區間的和,判斷給出的區間中有幾個不合法

區間之間的關係,可以轉換為向量之間的關係

如圖,我們已知sum[x]表示fx到x的和,sum[y]表示fy到y的和

現在我們給出x到y的和z,求sum[fy]即fx到fy的和

顯然 sum[fy]=sum[x]+z-sum[y]

而判斷合法性,只需要判斷sum[y]-sum[x]==z

1 #include2 #include3 #include4

using

namespace

std;56

const

int maxn=200000+5;7

intans;

8int

f[maxn],sum[maxn];910

int find(int

x)11

1718

intmain()

19else

if(sum[y]-sum[x]!=z) ans++;37}

38 printf("

%d\n

",ans);39}

40return0;

41 }

再介紹幾道經典例題:

[hnoi2005]狡猾的商人

[poj2492]

a bug』s life 

[poj1182]

食物鏈 

並查集,帶權並查集

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

帶權並查集

食物鏈 time limit 1000ms memory limit 10000k total submissions 71395 accepted 21146 description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃c,c吃a。現有n個動物,以1 n...

帶權並查集 then

問題 b 便 時間限制 2 sec 記憶體限制 512 mb 提交 50 解決 14 題目描述 給出乙個r c的棋盤.共有r行c列,r c個格仔.現要在每個格仔都填乙個非負整數.使得任意乙個2 2的正方形區域都滿足這樣的性質 左上角的數字 右下角的數字 左下角的數字 右上角的數字.有些格仔已經確定,...