AT_ttpc2023_n Bracket Sequestion
题目描述
给定正整数 $N$ 和素数 $M$。
我们定义如下条件的字符串为**好字符串**:
字符串仅由 `(`、`?`、`)` 组成,并且可以将其中的每个 `?` 替换为 `(` 或 `)`,使得整个字符串变为一个**平衡括号序列**。
长度为 $2N$ 的好字符串的个数对 $M$ 取余的结果是多少?
**平衡括号序列**满足下列条件之一:
- 空字符串;
- 存在某个平衡括号序列 $A$,使得将 `(`、$A$、`)` 按顺序连接得到该字符串;
- 存在某些非空的平衡括号序列 $A,B$,使得将 $A,B$ 按顺序连接得到该字符串。
输入格式
输入从标准输入读取,格式如下:
> $N$ $M$
输出格式
输出答案。
说明/提示
## 部分分
- 满足额外限制 $N\leq 5\times 10^{6}$ 的数据点可以获得 $70$ 分。
## 样例解释 1
长度为 $2N=2$ 的好字符串有 `()`、`(?`、`?)`、`??` 共 $4$ 个。
## 样例解释 4
输入样例 4 中的情况未包含在部分分的范围内。
## 数据范围
- $1\leq N\leq 9\times 10^{8}$
- $9\times 10^{8}\leq M\leq 10^{9}$
- $M$ 是素数
- 输入均为整数。
由 ChatGPT 5 翻译