CF1654H Three Minimums
题目描述
给定一个互不相同的数值序列,我们将最小值、次小值和第三小值分别称为“第一最小值”、“第二最小值”和“第三最小值”(按递增顺序排列)。
如果一个排列 $p_1, p_2, \dots, p_n$ 满足如下条件,则称其为“好排列”:对于所有满足 $1 \le l < l+2 \le r \le n$ 的区间 $(l, r)$,都有:
- 如果 $\{p_l, p_r\}$(顺序不限)是区间 $p_l, p_{l+1}, \dots, p_r$ 的第一最小值和第二最小值,则该区间的第三最小值必须是 $p_{l+1}$ 或 $p_{r-1}$。
现在给定一个整数 $n$ 和一个长度为 $m$ 的字符串 $s$,$s$ 仅包含字符“”。
请统计满足以下条件的“好排列” $p_1, p_2, \dots, p_n$ 的个数,并对 $998\,244\,353$ 取模:
- 对于所有 $1 \le i \le m$,
- 若 $s_i$ 为“”,则 $p_i > p_{i+1}$。
由于答案可能很大,请输出对 $998\,244\,353$ 取模后的结果。
输入格式
第一行包含两个整数 $n$ 和 $m$($2 \le n \le 2 \cdot 10^5$,$1 \leq m \leq \min(100, n-1)$)。
第二行包含一个长度为 $m$ 的字符串 $s$,仅由字符“”组成。
输出格式
输出一个整数,表示满足题意的“好排列”个数,对 $998\,244\,353$ 取模。
说明/提示
在第一个样例中,有 $5$ 个满足字符串 $s$ 所给限制的“好排列”:
$[4, 3, 2, 1, 5]$,$[5, 3, 2, 1, 4]$,$[5, 4, 2, 1, 3]$,$[5, 4, 3, 1, 2]$,$[5, 4, 3, 2, 1]$。
它们都:
- 是“好排列”;
- 满足 $p_1 > p_2$;
- 满足 $p_2 > p_3$;
- 满足 $p_3 > p_4$。
在第二个样例中,有 $60$ 个排列满足 $p_1 < p_2$,其中只有 $56$ 个是“好排列”:排列 $[1, 4, 3, 5, 2]$,$[1, 5, 3, 4, 2]$,$[2, 4, 3, 5, 1]$,$[2, 5, 3, 4, 1]$ 不是“好排列”,因为对于区间 $(l, r) = (1, 5)$,不满足要求。例如排列 $[2, 4, 3, 5, 1]$:
- 第一最小值和第二最小值分别为 $p_5$ 和 $p_1$(即 $\{p_l, p_r\}$,顺序不限);
- 第三最小值为 $p_3$(既不是 $p_{l+1}$ 也不是 $p_{r-1}$)。
在第三个样例中,有 $23$ 个满足字符串 $s$ 所给限制的“好排列”:
$[1, 2, 4, 3, 6, 5]$,$[1, 2, 5, 3, 6, 4]$,$[1, 2, 6, 3, 5, 4]$,$[1, 3, 4, 2, 6, 5]$,$[1, 3, 5, 2, 6, 4]$,$[1, 3, 6, 2, 5, 4]$,$[1, 4, 5, 2, 6, 3]$,$[1, 4, 6, 2, 5, 3]$,$[1, 5, 6, 2, 4, 3]$,$[2, 3, 4, 1, 6, 5]$,$[2, 3, 5, 1, 6, 4]$,$[2, 3, 6, 1, 5, 4]$,$[2, 4, 5, 1, 6, 3]$,$[2, 4, 6, 1, 5, 3]$,$[2, 5, 6, 1, 4, 3]$,$[3, 4, 5, 1, 6, 2]$,$[3, 4, 5, 2, 6, 1]$,$[3, 4, 6, 1, 5, 2]$,$[3, 4, 6, 2, 5, 1]$,$[3, 5, 6, 1, 4, 2]$,$[3, 5, 6, 2, 4, 1]$,$[4, 5, 6, 1, 3, 2]$,$[4, 5, 6, 2, 3, 1]$。
由 ChatGPT 4.1 翻译