CF1866H Happy Sets

题目描述

当且仅当对于 $A$ 中的每一个值为 $x$ 的元素,在 $B$ 中都存在一个值为 $x+1$ 的元素时,称集合 $A$ 是集合 $B$ 的“孩子”。 给定整数 $N$ 和 $K$。为了让 Chaneka 开心,你需要找出有多少个不同的数组,包含 $N$ 个集合 $[S_1, S_2, S_3, \ldots, S_N]$,满足以下条件: - 每个集合只能包含 $1$ 到 $K$ 之间的零个或多个不同整数。 - 存在一种重新排列这些集合数组顺序的方法,使得排列后的 $[S'_1, S'_2, S'_3, \ldots, S'_N]$ 满足对于每个 $1 \leq i \leq N-1$,$S'_i$ 是 $S'_{i+1}$ 的“孩子”。 请输出满足条件的不同集合数组的数量,对 $998\,244\,353$ 取模。 如果至少有一个值只出现在其中一个集合中,则认为两个集合不同。 如果至少有一个下标 $i$,使得两个集合数组在该下标对应的集合不同,则认为这两个集合数组不同。

输入格式

一行包含两个整数 $N$ 和 $K$($1 \leq N, K \leq 2 \times 10^5$),分别表示集合数组的长度和集合中元素的最大值。

输出格式

输出一个整数,表示满足条件的不同集合数组的数量,对 $998\,244\,353$ 取模。

说明/提示

在第一个样例中,共有 $11$ 种不同的集合数组,分别为: - $[\{\}, \{\}]$ - $[\{\}, \{1\}]$ - $[\{\}, \{1, 2\}]$ - $[\{\}, \{2\}]$ - $[\{1\}, \{\}]$ - $[\{1\}, \{1, 2\}]$ - $[\{1\}, \{2\}]$ - $[\{1, 2\}, \{\}]$ - $[\{1, 2\}, \{1\}]$ - $[\{2\}, \{\}]$ - $[\{2\}, \{1\}]$ 由 ChatGPT 4.1 翻译,fixed by @tallnut