[AHOI2017/HNOI2017] 抛硬币

[AHOI2017/HNOI2017] 抛硬币 - 洛谷P3726

答案就是下面的式子。(\(b \le a \le \min(10^{15}, b + 10^4)\)

标签 exlucas

\[\begin{aligned} ans \quad &= \sum\limits_{i = 0}^b\sum\limits_{j = i+ 1}^a \binom{b}{i}\binom{a}{j} \qquad\qquad (1) \\ &= \sum\limits_{i = 0}^b\sum\limits_{j = 0}^{a - i - 1} \binom{b}{i}\binom{a}{j} \qquad\qquad (2) \\ &= \sum\limits_{k = 0}^{a - 1}\sum\limits_{i = 0}^b \binom{b}{i}\binom{a}{k - i} \qquad\quad (3) \\ &= \sum\limits_{k = 0}^{a - 1} \binom{a+b}{k} \qquad\qquad\quad\quad \ \ (4) \end{aligned} \]

\((1)\)\((2)\):利用 \(\binom{a}{j} = \binom{a}{a - j}\)\(a - j\) 的范围是 \([0, a - i - 1]\)。相当于把 \(j\) 对称过去。

\((2)\)\((3)\):观察到 \(i + j \in [0, a - 1]\),枚举 \(k = i + j\),使得上下界均与 \(i\) 无关。

\((3)\)\((4)\):使用范德蒙德卷积。

现在我们已经将这个组合式通过变形 + 范德蒙德消掉了一层,但是 \(a, b \le 10^{15}\),还是无法直接枚举 \(k\)

注意到题目还给了一个条件:\(a - b \le 10^4\)。还是利用 \(\binom{a}{j} = \binom{a}{a - j}\) 这个性质(也就是关于 \(\frac{a}{2}\) 对称 ),而 \(a - \frac{a + b}{2} = \frac{a - b}{2} \le 10^4\)

\(m = \lfloor \frac{a + b}{2} \rfloor\),分 \(a + b\) 的奇偶性进行讨论(根据 \(\sum\limits_{y = 0}^x \binom{x}{y} = 2^x\)):

  • \(a + b\) 为奇数,那么 \(\sum\limits_{i = 0}^{m} \binom{a + b}{i} = 2^{a + b - 1}\),只需要计算 $\sum\limits_{i = m + 1}^{a - 1} \binom{a + b}{i} \mod 10^k $ 即可。
  • \(a + b\) 为偶数,那么 \(\sum\limits_{i = 0}^{m} \binom{a + b}{i} = 2^{a + b - 1} + \dfrac{\binom{a + b}{m}}{2}\),只需要计算 \(\sum\limits_{i = m + 1}^{a - 1} \binom{a + b}{i} \mod 10^k, \binom{a + b}{m} \mod 2 \times 10^k\) 即可。

注意 \(\binom{a + b}{m}\) 是对 \(2 \times 10^k\) 取模。

所以问题就变成了求 \(\binom{x}{y} \mod 10^k\) 了,因为 \(10^k = 2^k \times 5^k\),使用扩展 Lucas 定理即可。

本题首先需要通过范德蒙德对组合恒等式进行变形(这个不就不会),然后利用组合数的性质与 \(a - b \le 10^4\) 的条件省去枚举 \(k\) 的巨大复杂度,然后就是板子题了。

posted @ 2026-01-05 22:16  xiehanrui0817  阅读(9)  评论(0)    收藏  举报