待補 重要思考:求給無向圖定向使得其變為DAG的方案數

SkyMaths發表於2024-09-01

今天比賽考到了,不會,丟了 100 分。

rk2,380 -> rk15,280

別問為什麼 T4 沒過,因為不會 T2。

方法一 \(O(3^n)\)

\(f_S\) 為子集 \(S\) 內定向得到 DAG 的方案。

\(f_S = \sum\limits_{\emptyset \not= T\subset S, \text{T 為獨立集}} (-1)^{|T| - 1}f_{S - T}\)

考慮 DAG 的分解構造過程,可以將其分為出/入度等於 \(0\) 的最大點集,刪除/剝離一層繼續這樣,考慮逆向構造 DAG,但是發現存在重複計數,可以採用容斥,對於非空點集 \(T\),容斥係數為 \((-1)^{|T| - 1}\)

關於容斥係數:有機會總結一下。關於本題,設 \(T\) 的計算容斥係數為 \(g(T)\),而真實容斥係數為 \(1\),根據計算方式,大的會被每個小的計算一次(有些時候是有關組合數的係數,但這裡根據定義和公式是 \(1\) 次),於是有 \(\forall S, \sum\limits_{T\subset S}g(T) = 1\)

可以構造 \(g(T) = (-1)^{|T| - 1}\)

列舉子集複雜度 \(O(3^n)\)。考慮是不是可以 \(O(3^n)\) 求得容斥係數?

方法二 \(O(n^22^n)\)

貌似子集卷積,記得補

1 LUOGU

2 NFLS

相關文章