#P13574. [CCPC 2024 重庆站] 魔弹

[CCPC 2024 重庆站] 魔弹

题目背景

本题目来自仓库 https://github.com/Disposrestfully/CCPC-CQ-2024/tree/main

题目描述

Menji 在玩一款休闲养成游戏。

在这个游戏中,有 nn 名员工,依次站在数轴的 1,2,3,,n1,2,3, \dots, n 处,第 ii 名员工有一个面向的方向 did_i,为向左或向右。

每名员工手里有一把名为魔弹的武器,玩家会按照一个排列 pp 的顺序行动,当轮到玩家 xx 行动时:

  • 若该员工已经倒下,则其不会进行任何行动。
  • 否则,其会向其面对的方向发射子弹,子弹会击中面对方向的所有未倒下的玩家(若面对方向已经没有玩家,则不会击中任何人)。被击中的员工会立刻倒下。

由于形势混乱,在实际游戏中,pp 会在所有 n!n! 个可能的排列中随机选取。

Menji 想知道,对于每一个 1kn1\leq k\leq n,有多少个排列会使员工 kk 最终没有倒下

由于答案很大,你只需要输出答案对 998244353998244353 取模后的值。

输入格式

第一行一个整数 n (2n105)n \ (2\leq n\leq 10^5)

接下来一行一个长度为 nn 的字符串 ss。其中 si{L,R}s_i\in\{\text{L},\text{R}\},若 si=Ls_i=\text{L} 则第 ii 名员工面向左方(即员工 11 所在方向),若 si=Rs_i=\text{R} 则第 ii 名员工面向右方(即员工 nn 所在方向)。

输出格式

输出一行 nn 个数,其中第 ii 个数表示使员工 ii 最终没有倒下的排列数。

2
RL

1 1
4
LLRR

0 24 24 0
4
RLRL

9 6 6 9