CF1874F Jellyfish and OEIS

题目描述

Jellyfish 总是使用 OEIS 来解决数学问题,但现在她遇到了一个 OEIS 也无法解决的问题: 计算有多少个 $[1, 2, \dots, n]$ 的排列 $p$ 满足:对于所有满足 $l \leq r \leq m_l$ 的区间 $(l, r)$,子数组 $[p_l, p_{l+1}, \dots, p_r]$ 不是 $[l, l+1, \dots, r]$ 的一个排列。 由于答案可能很大,你只需要输出答案对 $10^9+7$ 取模后的结果。

输入格式

输入的第一行包含一个整数 $n$($1 \leq n \leq 200$),表示排列的长度。 第二行包含 $n$ 个整数 $m_1, m_2, \dots, m_n$($0 \leq m_i \leq n$)。

输出格式

输出满足条件的不同排列的数量,对 $10^9+7$ 取模。

说明/提示

在第一个样例中,$[2, 3, 1]$ 和 $[3, 1, 2]$ 满足条件。 由 ChatGPT 4.1 翻译