已结束 GESP巅峰赛#35

A7413 | 午枫的图书馆

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

小枫、小午和小安三个人在大学图书馆里学习。

图书馆里有 $N$ 张书桌,编号为 $1, 2, \ldots, N$,围成一个环形排列。
每两张相邻的书桌之间有一把公共椅子,共有 $N$ 把椅子,编号也与书桌对应:
书桌 $i$ 和书桌 $i+1$ 之间的椅子编号为 $i$(书桌 $N$ 和书桌 $1$ 之间的椅子编号为 $N$)。

有 $N$ 个同学,按逆时针编号为 $1, 2, \ldots, N$,每人坐在一张书桌前。
每个同学都有一个惯用手,可能是左手(L)或右手(R),这决定了他们取用椅子时的偏好。

小午制定了一个顺序 $(P_1, P_2, \ldots, P_N)$,这是 $1$ 到 $N$ 的一个排列。
按照这个顺序,第 $P_i$ 个同学依次去取一把椅子:

- 如果该同学左手边或右手边的椅子还没有被人拿走,则从中取走一把。
- 如果两边都还有椅子,则取走与自己惯用手相同侧的那把。
- 如果两边都没有椅子了,则什么也不做。

小安记录下了每个同学的惯用手信息,用一个长度为 $N$ 的字符串 $S$ 表示:

- L 表示该同学必须是左撇子;
- R 表示该同学必须是右撇子;
- ? 表示该同学的惯用手可以是左或右,没有限制。

小枫想知道:在所有 $2^N$ 种可能的惯用手组合中,有多少种组合满足以下两个条件:

1. 与 $S$ 中给定的 L/R 约束一致;
2. 所有人操作结束后,每个同学都拿到了恰好一把椅子

请你帮小枫算出这个数量,并对 $998244353$ 取模。

输入格式

第一行一个整数 $N$。

第二行 $N$ 个整数 $P_1, P_2, \ldots, P_N$,是 $(1, \ldots, N)$ 的一个排列。

第三行一个长度为 $N$ 的字符串 $S$,由 LR? 组成。

输出格式

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

输入输出样例

输入 #1
3
1 2 3
L??
输出 #1
2
C++ 编辑器
输入
输出