AT_arc175_a [ARC175A] Spoon Taking Problem

题目描述

有 $N$ 个人围坐在圆桌旁,每个人按逆时针方向依次编号为 $1,\ 2,\ \ldots,\ N$。每个人都有一只惯用手,可能是左手或右手。 圆桌上有 $N$ 把编号为 $1,\ 2,\ \ldots,\ N$ 的勺子,每两个人之间放有一把勺子。对于每个 $1 \leq i \leq N$,第 $i$ 个人的左侧有勺子 $i$,右侧有勺子 $(i+1)$。这里,勺子 $(N+1)$ 指的是勺子 $1$。 下图展示了 $N=4$ 时的示意图。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc175_a/e6f0a6024a199111c69d24084c2b3068c72489fd.png) 给定一个 $(1,\ \dots,\ N)$ 的排列 $(P_1,\ \dots,\ P_N)$。按照 $i=1,\dots,N$ 的顺序,第 $P_i$ 个人依次进行如下操作: - 如果自己左侧或右侧还有勺子,则从中取走一把。 - 如果自己两侧的勺子都还在,则取走与自己惯用手相同侧的勺子。 - 否则什么也不做。 给定一个由 `L`、`R`、`?` 组成的长度为 $N$ 的字符串 $S$。$N$ 个人的惯用手组合共有 $2^N$ 种可能,请你计算其中满足以下所有条件的组合数,并对 $998244353$ 取模: - 如果 $S$ 的第 $i$ 个字符为 `L`,则第 $i$ 个人必须是左撇子。 - 如果 $S$ 的第 $i$ 个字符为 `R`,则第 $i$ 个人必须是右撇子。 - 所有人操作结束后,每个人都拿到了一把勺子。

输入格式

输入通过标准输入给出,格式如下: > $N\ P_1\ P_2\ \dots\ P_N\ S$

输出格式

输出一个整数,表示满足条件的惯用手组合数,对 $998244353$ 取模。

说明/提示

## 限制 - 输入的所有数值均为整数。 - $2 \leq N \leq 2 \times 10^5$ - $(P_1,\dots,P_N)$ 是 $(1,\dots,N)$ 的一个排列。 - $S$ 是由 `L`、`R`、`?` 组成的长度为 $N$ 的字符串。 ## 样例解释 1 当第 $1,2,3$ 个人分别为左撇子、左撇子、右撇子时,操作如下: - 第 $1$ 个人开始操作。两侧的勺子都还在,因此取走左侧(与惯用手相同侧)的勺子 $1$。 - 第 $2$ 个人开始操作。两侧的勺子都还在,因此取走左侧的勺子 $2$。 - 第 $3$ 个人开始操作。右侧的勺子已经没有了,左侧的勺子 $3$ 还在,因此取走勺子 $3$。 所有人操作结束后,每个人都拿到了一把勺子。这个惯用手组合是满足条件的。除此之外,第 $1,2,3$ 个人都为左撇子的组合也满足条件。 ## 样例解释 2 不存在满足条件的惯用手组合。 由 ChatGPT 4.1 翻译