QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: ask_silently

Posted at: 2026-03-17 17:02:05

Last updated: 2026-03-17 17:19:07

Back to Problem

#1427 的线性做法

下文称翻到正面的人为白点,翻到反面的人为黑点。

由于对称性,不妨设集合中所有人均为分到白队。分为两种情况讨论:

  • 若集合中有黑点,则需要保证第一个为黑点的位置 $p$ 前面至少有 $n$ 个黑点。这部分可以直接枚举第一个黑点位置,答案为 $\sum_{i=1}^k \sum_{j=n}^{a_i-i} \binom{a_i-i}{j}$。

  • 若集合中没有黑点,则需要保证最后一个点前面白点的个数不超过 $n$。这部分答案为 $\sum_{i=0}^{n-k} \binom{a_k-k}{i}=\sum_{i=0}^n \binom{a_k-k}{i}-\sum_{i=n-k+1}^n \binom{a_k-k}{i}$。由于第二项项数总和为 $\sum k \le 2 \times 10^5$,所以可以直接枚举。

发现上面两个式子一个要求出杨辉三角中一行中位置大于等于 $n$ 的数之和,一个要求出一行中位置小于等于 $n$ 的数之和。发现由于一行中所有数的和是固定的,所以两者等价。下文对第一个问题求解。

设 $sum_i$ 为第 $i$ 行中位置大于等于 $n$ 的数之和。则有 $sum_{i}=2 \times sum_{i-1} + \binom{i-1}{n-1}$,可以 $O(n)$ 快速预处理。

综上,可以使用线性的时间复杂度来求出该问题。

Comments

No comments yet.