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$ 表示:
-
-
-
小枫想知道:在所有 $2^N$ 种可能的惯用手组合中,有多少种组合满足以下两个条件:
1. 与 $S$ 中给定的
2. 所有人操作结束后,每个同学都拿到了恰好一把椅子。
请你帮小枫算出这个数量,并对 $998244353$ 取模。
图书馆里有 $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$,由
第二行 $N$ 个整数 $P_1, P_2, \ldots, P_N$,是 $(1, \ldots, N)$ 的一个排列。
第三行一个长度为 $N$ 的字符串 $S$,由
L、R、? 组成。输出格式
输出一个整数,表示满足条件的惯用手组合数,对 $998244353$ 取模。
输入输出样例
输入 #1
3 1 2 3 L??
输出 #1
2
数据范围
对于 $100\%$ 的测试数据,满足:$2 \leq N \leq 2 \times 10^5$,$(P_1, \ldots, P_N)$ 是 $(1, \ldots, N)$ 的一个排列,$S$ 是由
L、R、? 组成的长度为 $N$ 的字符串。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?