換個問題,求每個集合最後的大小。我們發現,如果將 u,v 合併,那麼 f[u]=f[v]=f[u]+f[v]−f[u]⋂f[v]
而 f[u]⋂f[v] 之和上一次 u,v 合併的結果有關,於是我們可以對每條邊單獨記錄乙個數,表示上一次合併這條邊的結果
回到原問題,我們發現,每個點被哪些集合包含,只需要倒敘處理新問題就可以得到原問題的答案
#include
using
namespace std;
const
int n=
1e6+77;
int n,m,p[n]
,x[n]
,y[n]
,f[n]
,g[n]
;void
write
(int x,
int flag)
intmain()
for(
int i=
1; i<=n; i++
)write
(f[i]
,i==n)
;}
JZOJ 雜題選講 友誼
description flowey 是一朵能夠通過友誼顆粒傳播love 的小花 它的友誼顆粒分為兩種,圓粒的和皺粒的,它們依次排列組成了乙個長度為2m 的序列 對於乙個友誼顆 粒的序列,如果存在1 iinput 從friend.in 讀入資料 為一行三個正整數,n,m,p output 輸出到fr...
JZOJ 雜題選講 51nod1790
有乙個初始為0的計數器n,每次有兩種操作 n 1 把n不含前導0的二進位制接到字串s的末尾 目標是把s變成給出的字串x 求方案數和最小步數 x 5000 設f i j 表示放到x的第i位,n為 j,i 的方案,最小值同理 每次列舉上乙個位置轉移,這樣是o x 3 並且不好判斷二進位制數的大小 按x的...
2019 2 28 雜題選講
考慮將1至n m分別填入乙個擁有n行m列的 中,不允許重複。你需要滿足以下要求 第i行 1 i n 的最大值為ai。第j列 1 j m 的最大值為bj。請求出合法的填數方案數在模109 7意義下的值。1 n,m 1000 1 ai,bj n m 思路分步 填數 問題符合乘法原理,考慮從大到小填數,先...