torus711 のアレ

主に競技プログラミングの問題について書きます.PC 以外だと数式が表示されないかもしれないです

AtCoder Beginner Contest 425, E : Count Sequences 2

問題概要

 整数 $t, m $ が与えられる.
 以下の形式の問題が $t$ ケース与えられるので,それぞれ解け:
 正整数 $n$ と長さ $n$ の正整数列 $C = \langle C_1, C_2, \dots, C_n \rangle$ が与えられる.以下の条件を満たす数列の個数を $m $ で割った余りを求めよ:

  • 数列の要素は $1$ 以上 $n$ 以下の整数.
  • 各 $i \in \{ 1, 2, \dots, n \}$ について,数列に含まれる $i$ の個数は $C_i$ 個.

制約

  • $1 \leq t \leq 10^5$
  • $2 \leq m \leq 10^9$
  • $1 \leq n$
  • $\forall i \in \{ 1, 2, \dots, n \}, 1 \leq C_i$
  • $\sum_{ i - 1 }^n C_i \leq 5{,}000$
  • $\text{$t$ 個の問題に渡る $n$ の総和} \leq 3 \times 10^5$
続きを読む