AT_arc146_f [ARC146F] Simple Solitaire
题目描述
给定一个 $ (1,2,\dots,N) $ 的排列 $ P $,进行如下操作。
> 有 $ N $ 张卡片,这些卡片编号为 $ 1 $ 到 $ N $。卡片 $ i $ 上写有 $ P_i $。
>
> 有一个整数 $ X=1 $。一开始 PCT 君手上没有任何卡片。PCT 君按照 $ i=1,2,\dots,N $ 的顺序进行以下操作:
>
> - 获得卡片 $ i $。之后,只要手上有写有 $ X $ 的卡片,就重复以下操作:
> - 吃掉写有 $ X $ 的卡片,并将 $ X $ 加 $ 1 $。
>
> - 如果当前手上的卡片数量不少于 $ M $,则将手上所有卡片全部丢弃,操作立即结束。此后不再进行任何操作。
现在,定义排列 $ P $ 的分数如下:
- 如果卡片被丢弃导致操作结束,则 $ P $ 的分数为 $ 0 $。
- 如果卡片没有被丢弃,操作一直进行到最后,则 $ P $ 的分数为 $ \prod_{i=1}^{N-1} $(第 $ i $ 次操作结束时 PCT 君手上持有的卡片数量)。
对于所有可能的 $ P $(共有 $ N! $ 种),请输出所有分数的总和对 $ 998244353 $ 取模的结果。
输入格式
输入通过标准输入给出,格式如下:
> $ N\ M $
输出格式
请输出答案。
说明/提示
### 限制条件
- $ 2\leq N\leq 2\times 10^5 $
- $ 2\leq M\leq N $
- 输入均为整数。
### 样例解释 1
以 $ P=(3,1,2) $ 为例,操作如下:
- 第 $ 1 $ 次操作:PCT 君获得卡片 $ 1 $。当前手上有 $ 1 $ 张卡片,继续操作。
- 第 $ 2 $ 次操作:PCT 君获得卡片 $ 2 $。吃掉卡片 $ 2 $,$ X $ 变为 $ 2 $。当前手上有 $ 1 $ 张卡片,继续操作。
- 第 $ 3 $ 次操作:PCT 君获得卡片 $ 3 $。吃掉卡片 $ 1,3 $,$ X $ 变为 $ 4 $。当前手上有 $ 0 $ 张卡片,继续操作。
操作一直进行到最后,因此 $ (3,1,2) $ 的分数为 $ 1\times 1=1 $。除了 $ (3,1,2) $ 之外,没有其他排列的分数大于等于 $ 1 $,所以答案为 $ 1 $。
由 ChatGPT 4.1 翻译