1. 程式人生 > 其它 >2021.12.20 模擬賽

2021.12.20 模擬賽

計數場。

T1 AGC036F. Square Constraints

zzz 哥哥搬的 nb 題,還不會。

T2 「LibreOJ NOI Round #2」不等關係

zrq 學長講過的題誒。

只滿足 \(\texttt <\) 關係的話,答案是個多重集排列 \(\dfrac{n!}{\prod a_i!}\)

這樣算會讓一些 \(\texttt >\) 不滿足,考慮容斥,列舉 \(\texttt >\) 的一個子集 \(|T|\) 強制不滿足,容斥係數為 \((-1)^{|T|}\)

關注每選一個 \(\texttt >\) 對容斥係數的貢獻,那麼可以做一個 DP,\(f_i\)

表示前 \(i\) 個段的 \(\frac{1}{\prod a_i!}\) 乘容斥係數之和。發現轉移是半線上卷積,分治 NTT 即可 \(\mathcal O(n\log^2n)\)

T3 ARC102C. Stop. Otherwise...

對於權值 \(i\),如果 \(i<x\)\(i\)\(x-i\) 只能允許其中一個被選;特別地,\(i=x-i\) 時,這個值至多選一個;其餘的值隨意選。

設第一類權值對有 \(a\) 個,隨意選的權值有 \(b\) 個。

列出式子,

\[\sum_{i=0}^a\binom{a}{i}2^i\sum_{j=i}^n\binom{j-1}{i-1}\left(\binom{n-j+b-1}{b-1}+\binom{n-1-j+b-1}{b-1}\right), \]

可以 \(\mathcal O(n^3)\)

改一改,

\[\sum_{j=0}^n\left(\binom{n-j+b-1}{b-1}+\binom{n-1-j+b-1}{b-1}\right)(j-1)!\sum_{i=0}^{\min(a,j)}\binom{a}{i}2^i\frac{1}{(i-1)}\frac{1}{!(j-i)!} \]

把 T2 寫的 NTT 粘過來就 \(\mathcal O(n^2\log n)\) 了。

幸好給的 \(2000\),簡單卡卡常就過了。


下面記錄一個更優秀的做法:

  • 考慮二選一權值對的 OGF為 \(1+2x+2x^2+\dots\)
  • 至多選一次的權值的 OGF 為 \(1+x\)
  • 隨意選的權值的 OGF 為 \(1+x+x^2+\dots\)

最後分配 \(n\) 個骰子的權值,答案為

\[[x^n]\left(\frac{1+x}{1-x}\right)^a\cdot (1+x)^{[2|x]}\cdot \left(\frac{1}{1-x}\right)^b \]\[[x^n]\frac{(1+x)^A}{(1-x)^B} \]

我們知道 \([x^i](1+x)^A=\dbinom{A}{i}\)\([x^i]\dfrac{1}{(1-x)^B}=\dbinom{i+B-1}{B-1}\),每次可以 \(\mathcal O(n)\) 卷積得到單點答案。總複雜度 \(\mathcal O(nK)\)