Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:512 MB

#2805. 括号序列(bracket)

Statistics

题目描述

定义一个合法括号序列为仅由 () 构成的字符串且:

• 空串 S 是一个合法括号序列。

• 如果 A 是一个合法序列,那么 (A) 也是合法括号序列。

• 如果 A,B 都是合法括号序列,那么 AB 也是合法括号序列。

例如 (())() 是合法括号序列,而 )()) 不是。

定义一个长度为 $2n$ 的合法括号序列是优秀的,当且仅当其满足:对于从左到右的第 $i$ 个左括号,与其匹配的右括号和这个左括号之间的距离在$ [L_i , R_i ]$ 之间。

给出 n 和 $L_{1···n}$, $R_{1···n}$,请求出有多少长度为 $2n$ 的优秀的合法括号序列。由于答案可能很大,你只需要回答其对$ 998244353$ 取模后的结果。

你可以通过阅读样例解释以更好地理解题意。

输入格式

从文件 $bracket.in$ 中读入数据。 第一行一个正整数 $n$。 接下来 $n$ 行,第 i 行两个整数 $L_i , R_i$。

输出格式

输出到文件 $bracket.out$ 中。 一行一个整数表示答案。

样例 $1$ 输入

3
1 5
1 1
1 5

样例 $1 $输出

3

样例 $1$ 解释

三种优秀的合法括号序列分别为:(())(),(()())()()()

对于第一种优秀的合法括号序列,第一个左括号位于位置 $1$,与其匹配的右括号位于 位置 $4$,距离 $d = 4 − 1 = 3$,满足 $L_1 = 1 ≤ d ≤ R_1 = 5$。

样例 $2,3$

见$ /{ex\_bracket2.in},/ex\_bracket3.in 与 /ex\_bracket2.out,/ex\_bracket3.out$。

测试点约束

对于所有测试点,$1 ≤ n ≤ 700,1 ≤ L_i , R_i ≤ 2n − 1$。

每个测试点的具体限制见下表:

测试点编号 $n\leq$ 特殊限制
$1$~$4$ $5$
$5$~$8$ $10$
$9$~$10$ $700$ $L_i=1,R_i=2n-1$
$11$~$16$ $50$
$17$~$20$ $700$