atcoder#AGC056B. [AGC056B] Range Argmax

[AGC056B] Range Argmax

题目描述

整数 N N と整数の組が M M 個与えられます. i i 番目の組は (Li,Ri) (L_i,R_i) です.

以下の手順で生成されうる整数列 x=(x1,x2,,xM) x=(x_1,x_2,\cdots,x_M) の個数を 998244353 998244353 で割った余りを求めて下さい.

  • (1,2,,N) (1,2,\cdots,N) の順列 p=(p1,p2,,pN) p=(p_1,p_2,\cdots,p_N) を用意する.
  • i i (1  i  M 1\ \leq\ i\ \leq\ M ) について,pLi,pLi+1,,pRi p_{L_i},p_{L_i+1},\cdots,p_{R_i} の中で最も大きい値の index を xi x_i とする. つまり,max(pLi,pLi+1,,pRi)=pxi \max(p_{L_i},p_{L_i+1},\cdots,p_{R_i})=p_{x_i} である.

输入格式

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

N N M M L1 L_1 R1 R_1 L2 L_2 R2 R_2 \vdots LM L_M RM R_M

输出格式

答えを出力せよ.

题目大意

给定整数 nn 以及 mm 对整数。第 ii 对整数为 (li,ri)(l_i, r_i)

请输出可以通过如下方式生成的整数序列 x=(x1,x2,,xm)x = (x_1, x_2,\cdots,x_m) 的个数。答案对 998244353998244353 取模。

生成方式:

  • 取排列 p=(p1,p2,,pn)p = (p_1, p_2,\cdots,p_n),满足其为一个 11nn 的排列。
  • 对于任意 1im1\le i \le mii,令 xix_iplipli+1,,prip_{l_i}, p_{l_i + 1},\cdots ,p_{r_i} 中最大值对应的下标。即 $p_{x_i} = \max\{p_{l_i}, p_{l_i + 1},\cdots, p_{r_i}\}$。

2n300, 1mn(n1)22\le n\le 300,\ 1\le m\le \frac{n(n - 1)}2

3 2
1 2
1 3
4
6 3
1 2
3 4
5 6
8
10 10
8 10
5 8
5 7
2 5
1 7
4 5
5 9
2 8
7 8
3 9
1060

提示

制約

  • 2  N  300 2\ \leq\ N\ \leq\ 300
  • 1  M  N(N1)/2 1\ \leq\ M\ \leq\ N(N-1)/2
  • 1  Li < Ri  N 1\ \leq\ L_i\ <\ R_i\ \leq\ N
  • (Li,Ri)  (Lj,Rj) (L_i,R_i)\ \neq\ (L_j,R_j) (i  j i\ \neq\ j )
  • 入力される値はすべて整数である

Sample Explanation 1

例えば,p=(2,1,3) p=(2,1,3) とした場合は x=(1,3) x=(1,3) となります. 条件を満たす数列は,x=(1,1),(1,3),(2,2),(2,3) x=(1,1),(1,3),(2,2),(2,3) 4 4 通りです.