atcoder#AGC055C. [AGC055C] Weird LIS

[AGC055C] Weird LIS

题目描述

整数 N, M N,\ M が与えられます。次の条件を満たす長さ N N の列 A=[A1, A2, , AN] A=[A_1,\ A_2,\ \ldots,\ A_N] の個数を求めてください。

  • 2  Ai  M 2\ \le\ A_i\ \le\ M (1  i  N 1\ \leq\ i\ \leq\ N )
  • 1 1 から N N までの整数の順列 P=[P1,P2,,PN] P=[P_1,P_2,\ldots,P_N] であって次の性質を持つものが存在する。
    • 1 1 から N N までの各 i i について、Ai A_i は列 $ [P_1,\ P_2,\ \ldots,\ P_{i-1},\ P_{i+1},\ \ldots,\ P_{N-1},\ P_N] $ の最長増加部分列の長さに等しい。

この個数は非常に大きい可能性があるため、これを素数 Q Q で割った余りを出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M Q Q

输出格式

答えを Q Q で割った余りを出力せよ。

题目大意

f(p)f(p) 表示排列 pp 的最长上升子序列长度。

PiP_i 表示排列 pp 去掉第 ii 个数的序列。求有多少长为 NN,值域为 [2,M][2,M] 的序列 aa 使得:存在一个排列 ppi\forall if(Pi)=aif(P_i)=a_i

答案对素数 QQ 取膜。

3 2 686926217
1
4 3 354817471
9
5 2 829412599
1
5 3 975576997
23
69 42 925171057
801835311

提示

制約

  • 3  N  5000 3\ \le\ N\ \le\ 5000
  • 2  M  N1 2\ \le\ M\ \le\ N-1
  • 108  Q  109 10^8\ \le\ Q\ \le\ 10^9
  • Q Q は素数である。

Sample Explanation 1

このような列は [2, 2, 2] [2,\ 2,\ 2] のみです。ここで [1, 2, 3] [1,\ 2,\ 3] という順列が存在して性質を満たします。

Sample Explanation 2

このような列は次の 9 9 個です: [2, 2, 2, 2] [2,\ 2,\ 2,\ 2] , [2, 2, 2, 3] [2,\ 2,\ 2,\ 3] , [2, 2, 3, 2] [2,\ 2,\ 3,\ 2] , [2, 2, 3, 3] [2,\ 2,\ 3,\ 3] , [2, 3, 2, 2] [2,\ 3,\ 2,\ 2] , [2, 3, 3, 2] [2,\ 3,\ 3,\ 2] , [3, 2, 2, 2] [3,\ 2,\ 2,\ 2] , [3, 3, 2, 2] [3,\ 3,\ 2,\ 2] , [3, 3, 3, 3] [3,\ 3,\ 3,\ 3]

Sample Explanation 3

このような列は [2, 2, 2, 2, 2] [2,\ 2,\ 2,\ 2,\ 2] のみです。