沒想到這兩個東西還可以這麼用,我們可以用f[
i][j
] 表示[i
,i+2
j−1]
這一段區間屬於哪乙個集合,沒有則等於0.
那麼每次合併我們可以把這個限制拆成log個區間,依次合併起來。 若f
[i][
j]和f[s
][t]
同屬乙個集合,那麼f[
i][j
−1] 和f[
s][t
−1] ,f[
i+2j
−1][
j−1]
和f[s
+2t−
1][t
−1] 也同屬乙個集合。
BZOJ 4569 萌萌噠 (並查集)
time limit 10 sec memory limit 256 mb description 乙個長度為n的大數,用s1 s2 s3 sn表示,其中si表示數的第i位,s1是數的最高位,告訴你一些限制條件,每個條 件表示為四個數,l1,r1,l2,r2,即兩個長度相同的區間,表示子串sl1 s...
SCOI2016 萌萌噠 並查集 倍增
傳送門 一開始是想賭一把,把節點乙個乙個的unite,然後懷著wa的心情wa了。然後又準備用離散去優化,然後又懷著wa的心情wa了。萬般無奈去查題解,發現竟然要使用倍增?倍增是啥,我多少年沒有用過了 複習了一波倍增,原來倍增也可以用在並查集上,我對並查集又有了新的理解,這個資料結構,好強啊!incl...
SCOI2016 萌萌噠 倍增 並查集
乙個長度為n的大數,用s1s2s3.sn表示,其中si表示數的第i位,s1是數的最高位,告訴你一些限制條件,每個條件表示為四個數,l1,r1,l2,r2,即兩個長度相同的區間,表示子串sl1sl1 1sl1 2.sr1與sl2sl2 1sl2 2.sr2完全相同。比如n 6時,某限制條件l1 1,r...