CF1830C Hyperregular Bracket Strings

题目描述

给定一个数 $n$ 和 $k$ 个区间 $\left[l_i,r_i\right]\subseteq [1,n]$。 我们定义,对于一个长度为 $n$ 的,仅由 `(` 和 `)` 组成的**合法**括号序列,如果它的每一个区间 $\left[l_i,r_i\right]$ 内的子串都是合法括号序列,那么这个括号序列是严格合法的。 求严格合法的括号序列的数量,答案对 $998244353$ 取模。

输入格式

第一行一个整数 $t\ (1\le t\le 10^5)$,表示数据组数。 对于每组数据,第一行两个整数 $n,k\ (1\le n\le 3\times 10^5,0\le k\le3\times 10^5)$,表示严格合法括号序列的长度和给定区间的个数。 接下来 $k$ 行,每行两个整数 $l_i,r_i(1\le l_i\le r_i\le n)$。 保证单个测试店内 $n$ 与 $k$ 的和不超过 $3\times 10^5$。

输出格式

对于每组数据,输出一行一个整数表示严格合法括号序列的个数对 $998244353$ 取模后的结果。

说明/提示

- 对于第一组数据,长度为 $6$ 的 $5$ 个严格合法括号序列是:`((()))`、`(()())`、`(())()`、`()(())` 和 `()()()()`。 - 对于第二组数据,没有长度为 $5$ 的合法括号序列,所以没有长度为 $5$ 的严格合法括号序列。 - 对于第三组数据,没有长度为 $8$ 且子串 $[1\cdots3]$ 是合法括号序列的严格合法括号序列。 - 对于第四组数据,$4$ 个严格合法括号序列如下:`((())(()))`、`((())()())`、`()()((()))` 和 `()()(()())`。