P15773 [JAG 2025 Summer Camp #2] Count Unique Packing

题目描述

你在“容器装箱可识别性中心”工作,研究容器装箱方案的唯一性。 给定 $N$ 件物品。第 $i$ 件物品有一个正整数重量 $A_i$($1 \leq i \leq N$)。 你考虑将物品的一个(非空)子集 $S \subseteq \{1, 2, \ldots, N\}$ 装入容器。你可以使用任意多个非空容器(不允许使用空容器)。固定一个正整数 $w$ 表示每个容器的容量。$S$ 的一个**有效装箱**是将 $S$ 中的物品分配到容器中的一种方案,它必须满足以下所有条件: - **覆盖性**:$S$ 中的每件物品恰好被放入一个容器。 - **容量限制**:每个容器中物品的总重量不超过 $w$。 - **不可合并性**:对于任意两个不同的容器 $A$ 和 $B$,$A$ 或 $B$ 中所含物品的总重量**严格大于** $w$(即,在不违反容量 $w$ 的前提下,任意两个容器都无法合并成一个容器)。 容器是不可区分的,而物品是互不相同的(即使某些物品重量相同)。两种装箱方案被认为是相同的,当且仅当它们诱导出 $S$ 的相同划分;等价地说,对于任意不同的 $i, j \in S$,物品 $i$ 和 $j$ 在一种装箱方案中位于同一个箱子,当且仅当它们在另一种装箱方案中也位于同一个箱子。 对于一个固定的 $w$,如果一个子集 $S$ 恰好存在一种满足所有条件的有效装箱方案,则称 $S$ 是**唯一可装箱的**。 给定一个整数 $W$。令 $f(w)$($w = 1, 2, \ldots, W$)表示容量为 $w$ 时唯一可装箱的非空子集的数量。对于每个 $w = 1, 2, \ldots, W$,输出 $f(w)$ 对 $998244353$ 取模的结果。换句话说,对于每个 $w = 1, 2, \ldots, W$,定义 $$ f(w) = \#\{S \subseteq \{1, 2, \ldots, N\} \mid S \text{ 是非空的,且对于容量 } w \text{ 是唯一可装箱的}\}. $$ 输出 $W$ 个整数;对于每个 $w = 1, 2, \ldots, W$,输出 $f(w)$ 对 $998244353$ 取模的结果。

输入格式

输入包含一个测试用例,格式如下。 $$ \begin{aligned} & N \ W \\ & A_1 \ A_2 \ \cdots \ A_N \end{aligned} $$ 第一行包含两个整数 $N$($1 \leq N \leq 5000$)和 $W$($1 \leq W \leq 5000$),分别表示物品的数量和容量参数 $w$ 的上界(即需要考虑的最大容量)。第二行包含 $N$ 个正整数 $A_1, A_2, \ldots, A_N$($1 \leq A_i \leq W$)。每个 $A_i$ 表示物品 $i$ 的重量。

输出格式

在一行中输出 $W$ 个整数,以空格分隔:对于每个 $w = 1, 2, \ldots, W$,第 $w$ 个整数是 $f(w)$ 对 $998244353$ 取模的结果(容量为 $w$ 时的答案)。

说明/提示

翻译由 DeepSeek V3.2 完成