P13573 [CCPC 2024 重庆站] Pico Park

题目背景

本题目来自仓库

题目描述

Menji 在玩一款多人益智小游戏。 在这个游戏中,有 $n$ 名玩家,依次站在数轴的 $1,2,3, \dots, n$ 处,第 $i$ 名玩家有一个面向的方向 $d_i$,为向左或向右。 每名玩家手里有一把缩小枪,玩家会按照一个排列 $p$ 的顺序行动,当轮到玩家 $x$ 行动时: - 若该玩家已经被缩小,则其不会进行任何行动。 - 否则,其会向其面对的方向发射子弹,子弹会击中面对方向的**第一个未被缩小**的玩家(若面对方向已经没有玩家,则不会击中任何人)。被击中的玩家会立刻被缩小。 由于形势混乱,在实际游戏中,$p$ 会在所有 $n!$ 个可能的排列中随机选取。 Menji 想知道,对于每一个 $1\leq k\leq n$,有多少个排列会使**最终剩余 $k$ 个未被缩小的玩家**? 由于答案很大,你只需要输出答案对 $998244353$ 取模后的值。

输入格式

第一行一个整数 $n \ (2\leq n\leq 500)$。 接下来一行一个长度为 $n$ 的字符串 $s$。其中 $s_i\in\{\text{L},\text{R}\}$,若 $s_i=\text{L}$ 则第 $i$ 名玩家面向左方(即玩家 $1$ 所在方向),若 $s_i=\text{R}$ 则第 $i$ 名玩家面向右方(即玩家 $n$ 所在方向)。

输出格式

输出一行 $n$ 个数,其中第 $i$ 个数表示**最终剩余 $i$ 个未被缩小的玩家**的排列数。