P16594 [GKS 2016 #E] Partioning Number

题目描述

Shekhu 有 $N$ 个球。她想把它们分配到一个或多个桶中,并满足以下所有约束条件: 1. 从左到右读取时,桶中的球数必须呈非递减顺序。 2. 最左边的桶必须非空,且最左边桶中的球数必须能被 $D$ 整除。 3. **任意**两个桶之间的球数之差(并不仅是相邻桶)必须小于或等于 $2$。 Shekhu 有多少种不同的分配方式?如果从左到右读取桶中球数的列表不同,则认为两种方式不同。

输入格式

输入的第一行给出测试用例的数量 $T$。 接下来有 $T$ 个测试用例。每个测试用例由一行两个整数 $N$ 和 $D$ 组成,含义如上所述。

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是上述答案。

说明/提示

在样例 #1 中,可能的分布为: ``` 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 3 1 1 1 2 2 1 2 2 2 1 1 2 3 1 3 3 2 2 3 3 4 7 ``` 注意,`1 2 4` 不是有效的分布,因为 1 和 4 之间的差值大于 2。 在样例 #2 中,可能的分布为: ``` 2 2 3 ``` `3 4` 不可行,因为第一项不能被 2 整除。 在样例 #3 中,不存在可行的排列。 ### 限制条件 $1 \le T \le 100$。 $1 \le D \le 100$。 **小数据集(测试集 1 – 可见)** $1 \le N \le 2000$。 **大数据集(测试集 2 – 隐藏)** $1 \le N \le 10^5$。 翻译由 DeepSeek V4 Pro 完成