HAOI 2018 染色(容斥 NTT)

2022-05-14 11:23:31 字數 820 閱讀 7891

設 \(f(k)\) 為強制選擇 \(k\) 個顏色出現 \(s\) 種,其餘任取的方案數。

則有\[f(k)=(m-k)^

\]不難看出,這個方案可能包括了超過 \(k\) 種顏色,也有重複的方案,所以恰有 \(k\) 個顏色出現 \(s\) 種的方案 \(ans_k\) 滿足

\[ans_k=\sum_^)}(-1)^f(i)

\]最終化簡得到

\[ans_k=\sum_^)}i!f(i)\cdot \over (i-k)!}

\]\(\text\) 卷積即可。

做容斥題時定義出的狀態本身就是有重複的,所以需要加加減減。

#include#define for(i,x,y) for(int i=(x),i##end=(y);i<=i##end;++i)

#define dor(i,x,y) for(int i=(x),i##end=(y);i>=i##end;--i)

using namespace std;

templateinline bool chk_min(t &x,const _t y)

ll inv(ll a,ll p)

}using namespace _maths;

namespace _polynomial

};int fac[n],ifac[n],f[m];

int a[m],b[m],c[m<<1];

int w[m];

int n,m,s,b;

ll ans;

ll com(int n,int m)

int main()

HAOI2018 染色 NTT,組合計數

對乙個長度為 n 的序列進行染色,有 m 種顏色。對一種方案,如果恰好出現 s 次的顏色總數為 k 則得分為 w k 求所有染色方案得分的總和。n leq 10 7,m leq 10 5,s leq 150 最大有效顏色數為 lim min m,n s 設恰好出現 s 次的顏色有至少 i 種的方案數...

bzoj5306 NTT 容斥原理 染色

description 傳送門 題解 upd 原來這是二項式反演來著qwq 貼一下容斥題的一點點做法.首先顯然先求方案數g i g i g i 表示只有i ii種出現了s ss次的方案數 那怎麼說也要求乙個f i f i f i 表示至少有i ii種出現了s ss次的方案數 f i cm i cn ...

HAOI2018 簡要題解

以前做過的 haoi2018 染色 haoi2018 蘋果樹暫時不更 haoi2018 字串覆蓋 已經棄療了。總體難度 medium 偏 easy,但是 luogu4495 haoi2018 奇怪的揹包 想不到是真的腦抽。可以在 找到。小 c 和小 g 經常在一起研究搏弈論問題,有一天他們想到了這樣...