重庆八中集训 day5

20220618

通用评测号

题意

\(N\) 个数字,每次给其中一个数字加上 \(1\),然后求所有数字 \(\ge b\) 的时候,\(\ge a\) 的数字的期望个数。

题解

怎么办?

拆贡献,求每个数字 \(=a\) 的时候存在 \(<b\) 的燃料仓的概率即可。所有燃料舱等价,\(\times N\) 就是答案。

怎么求?钦定有 \(p\) 个没半满,那么容斥系数是 \(\binom{n - 1}{p} (-1) ^ {p - 1}\),然后问题变成了,给你一个序列,然后里面的数字的值域为 \([0, p]\),然后 \(a\)\(0\) 之前一个数字不会出现 \(b\) 次以上。

怎么办?可不可以,考虑 \(\text{EGF}\) \(f(x) = \sum_{i < b} \frac{x ^ i}{i!}\),之后答案就是,我们枚举每个 \(0\) 的位置

\[\sum_{j = 0 } ^ {p (b - 1) } \frac{(a- 1 + j)!}{(a - 1)!(p + 1) ^ {a + j}} [x ^ j] f^p(x) \]

这玩意可以 \(O(N ^ 3 \log N)\),写一发。

Math Ball

题意

\(N\) 种球,每种球无限个,你最多拿 \(W\) 个球,第 \(i\) 种球有权值 \(c_i\),假如第 \(i\) 种球拿了 \(k_i\) 个,那么这次拿球的权值是 \(\prod _{i = 1} ^ n k_i ^ {c_i}\),求所有方案的权值和,对于 \(998244353\) 取模。

题解

前置知识:

  • 普通幂和下降幂的转化

\[x ^ n = \sum_{k = 0} ^ n {n\brace{k}}x ^ {\underline{k}} \]

或者是

\[x ^ {\underline{n}} = \sum_{k = 0} ^ n {n\brack k} (-1) ^ {n - k} x ^ k \]

  • 对于一个 \(f_n = \binom{n + m}{m}\)\(\text{OGF}\) 就是 \(\left(\frac{1}{1 - x}\right) ^ {m + 1}\)

证明可以考虑对于 \(m\) 归纳,因为有组合恒等式 \(\binom{n + m + 1}{m + 1} = \sum_{i = 0} ^ n \binom{i + m}{m}\),每次卷上一个 \(\frac{1}{1 - x}\) 相当于就是把原来的系数求和。

我们考虑对于原来的问题就求解,考虑原先的最多选 \(W\) 个可以使用转化为指数上的用生成函数来限制。

\[\begin{aligned} ans &= \sum_{i = 0} ^ W [x ^ i] \prod_{j = 1} ^ n \sum_{k = 0} ^ {\infty}x ^ k k ^ {c_j} \\ &= \sum_{i = 0} ^ W [x ^ i] \prod_{j = 1} ^ n\sum_{k = 0} ^ {\infty}\left(x ^ k\sum_{l = 0} ^ {c_j} k ^ {\underline l} {c_j\brace l} \right) \\ &= \sum_{i = 0} ^ W[x ^ i] \sum_{j =1} ^ {n} \sum_{l = 0} ^ {c_j} {c_j\brace l}l!\sum_{k = 0} ^ \infty \binom{k}{l} x ^ k \\ &= \sum_{i = 0} ^ W[x ^ i] \sum_{j =1} ^ {n} \sum_{l = 0} ^ {c_j} {c_j\brace l}l!x ^ l\sum_{k = 0} ^ \infty \binom{k + l}{l} x ^ {k} \\ &= \sum_{i = 0} ^ W[x ^ i] \sum_{j =1} ^ {n} \sum_{l = 0} ^ {c_j} {c_j\brace l}l!x ^ l \left(\frac{1}{1 - x}\right) ^ {l + 1} \end{aligned} \]

考虑第二类斯特林数,一次求一行就可以用,我们可以把 \((1-x ) ^ {l + 1}\) 变成自变量。然后可以分治 NTT 求,但是怎么说,考虑到还有一个 \(x ^ l\) 其实不好搞,但是发现他和 \(l + 1\) 的次数就差一个,所以最后我们的 \(\left (\frac{1}{1 - x}\right) ^ {m}\) 的项,必定带着一个 \(x ^ {m - n}\) 就好了。

怎么统计答案,我们考虑 \(g_p x ^ {p - n} \left(\frac{1}{1 - x}\right) ^ p\) 对于某个 \(x ^ r\) 的贡献,\([x ^ {r - p + n}]\left( \frac{1}{1 - x}\right) ^ p = \binom{r + n - 1}{p - 1}\)

然后对于所有灯 $ r\in [0, W - p + n]$ 求一下和,\(\sum_{r = 0} ^ {W - p + n} \binom{r + n - 1}{p - 1} = \binom{W + n}{p}\),证明就是考虑 \(\sum_{l = 0} ^ n \binom{l}{k} = \binom{n + 1}{k + 1}\),然后做完了。

最后写出来就应该是 \(\sum_{i = N} ^ {\sum c + N} \binom{W + N}{i} g_p\)

第二类斯特林数公式:\({n\brace m} = \sum_{i = 0} ^ m \frac{(-1) ^ {m - i}i ^ n}{i! (m- i)!}\)

[AGC038E] Gachapon

题意

有一个随机数生成器,生成 \([0, N)\) 之间的整数,第 \(i\) 个整数被生辰的概率是 \(\frac{A_i}{S}\), 其中 \(S = \sum_i A_i\),这个随机数生成器一直运行,直到对于 \(\forall i \in [0, N)\),\(i\) 的出现次数大于 \(B_i\)。问这个随机数生成器运行的期望次数。

题解

首先考虑 min-max 反演,令 \(E\left(\max(T)\right)\) 表示 \(T\) 集合内最大的一个出现次数大于 \(B_i\) 的整数出现了的时间,而 \(E\left(\min(T)\right)\)。我们根据 min-max 反演公式,应该有

\[E(\max(S)) = \sum_{T \subseteq S\and T \not = \emptyset} (-1) ^ {\vert T \vert + 1} E(\min(T)) \]

然后发现,我们想一下,对于一个集合来说他们的 \(\min(T)\) 怎么求,不妨设这个 \(T\) 集合里有 \(m\) 个元素,编号分别为 \(1, 2, 3, \ldots, m\),然后答案应该是

\[E(\min(T)) = \frac{S}{\sum_{i = 1} ^ m A_i}\times \left(\sum_{\forall 1\le i \le m, 0\le c_i < b_i}\frac{\left(\sum_{i} c_i\right) !}{\prod _{i} c_i !}\prod_{i = 1} ^ m\left({\frac{A_i}{\sum_{j = 1} ^ m A_j}}\right) ^ {c_i}\right) \]

表示每个东西的选择次数都没有超过 \(B_i\) 的期望时间。我们+1 就是所求

这玩意,然后我们发现,每次如果添加一个元素,动的只有上面的 \(\sum_{i} c_i\) 还有 \(\sum_{j} A_j\),于是可以开一个 \(f(i, j, k)\) 表示做到第 \(i\) 个,然后 \(\sum A = j, \sum c = k\) 的期望时间,我们可以在最开头的时候令 \(f(0, 0, 0) = -1\),这样就可以最后避免加上1什么的了。

[AGC034E] RNG and XOR

题意

有一个随机数生成器,生成 \([0, 2 ^ N - 1]\) 之间的整数。你开始有一个 \(x = 0\),每次随机生成一个 \(y\)(生成 \(y\) 的概率为 \(p_y\)),然后 \(x\) 异或上 \(y\),求 \(x\) 第一次变成 \(i\) 的期望操作次数 \(f_i\)

题解

我们考虑一个 \(dp\),然后

\[f_i = \begin{cases} 0 & i = 0\\ 1+\sum_{j} f_{i \oplus j} p _j & i \not = 0 \end{cases} \]

这玩意你转成集合幂级数,然后 \(F = F * P + I - 2 ^ Nx ^ {\empty}\) 然后,这玩意你考虑求出来 \(\hat{F(x)} = \frac{2 ^ n(x^{\empty} - I(x))}{I(x) - \hat{P(x)}}\),然后就可以算了,但是 \(I(\empty) - \hat{P(\empty)} = 0\),不能直接除过去,我们考虑 \(f(\empty) = \sum_{S \in 2 ^ U} \hat{f(S)}\) 即可,我们就可以解出来 \(\hat{f(\empty)} = -\sum_{S \in 2 ^ U, S \not = \empty} \hat{f (S)}\)

posted @ 2022-06-18 22:00  siriehn_nx  阅读(85)  评论(0编辑  收藏  举报