$Sequence$ $Statistics$
$Description$
给定三个整数 $N,L$ 和 $R$,统计长度在 $1$ 到 $N$ 之间,元素大小都在 $L$ 到 $R$ 之间的单调不降序列的数量,对 $10^6 + 3$ 取模。
$Solution$
观察本题,我们会发现如果他是单调上升序列,那么会非常好做,直接 $\sum_{i = 1}^{n} C_{r - l + 1}^{i}$ 就完事了,但这题是单调不降序列,所以,此处有一个经典套路做法,把所有数字加上他自己的下标,转换成求单调不降序列来做。
如此,数的取值范围就是 $[l + 1, r + n]$ 。
然后答案就是有 $r - l + 1$ 个数可选,总共有 $r - l + n$ 个数。
也就是
$$
Ans = \sum_{i = 1}^{n} C_{r - l + i}^{r - l}
$$
显然这个东西复杂度是 $O(n)$ 的,所以我们考虑找规律优化。
我们把 $\sum$ 展开
$$
Ans = C_{r - l + 1}^{r - l} + C_{r - l + 2}^{r - l} \ldots + C_{r - l + n}^{r - l}
$$
然后我们考虑在前面加一项 $C_{r - l}^{r - l}$ ,就可以用组合数递推通项公式合并了。
最后的答案就是
$$
C_{r - l + 1 + n}^{r - l} - C_{r - l}^{r - l}
$$
即
$$
Ans = C_{r - l + 1 + n}^{r - l} - 1
$$
就做完了。
$Code:$
1 |
|