P9906 [COCI 2023/2024 #1] Kocke
题目描述
在 Donald 的十三岁生日上,他的父亲给了他一套乐高积木。在这套积木中,有 $n$ 个大小相同的积木,且第 $i$ 个积木的颜色为 $i$ 。他想要用这些积木搭一面墙。
Donald 将在排成一排的乐高积木的底座上建造他的墙,底座上有 $k$ 个可以放积木的地方。他按以下方式放置积木:
- 首先,他将颜色为 $1$ 的积木放在底座的任意一个位置上。
- 对于每个颜色从 $2$ 到 $n$ 的积木,他都会选择和前一个积木相邻的位置,在对应位置的顶端放上这个积木。
他用一个长度为 $k$ 序列表示这面墙:对于第 $i$ 位,如果个位置没有积木,则是 $0$,否则是这个位置最顶端积木的颜色。
问一共有多少种不同的序列,对 $10^9+7$ 取模。
输入格式
一行两个整数 $n,k$ 表示积木数量和位置数量。
输出格式
一个整数表示问题答案对 $10^9+7$ 取模的结果。
说明/提示
### 【样例解释#1】
可能的序列有:$(0, 3, 4), (2, 3, 4), (0, 4, 3), (1, 4, 3), (4, 3, 0), (4, 3, 2), (3, 4, 0), (3, 4, 1)$。
### 【样例解释#2】
其中一种可能的序列是 $(0,3,2,0,0)$,它的操作步骤是:
- 在第 $2$ 个位置顶端摆放编号为 $1$ 的积木。
- 在第 $3$ 个位置顶端摆放编号为 $2$ 的积木。
- 在第 $2$ 个位置顶端摆放编号为 $3$ 的积木。
- 在第 $3$ 个位置顶端摆放编号为 $4$ 的积木。
- 在第 $2$ 个位置顶端摆放编号为 $5$ 的积木。
### 【数据范围】
对于 $100\%$ 的数据,$2\leq n,k\leq 5000$。
**本题采用捆绑测试。**
| 子任务 | 特殊性质 | 分值 |
| :----------: | :----------: | :----------: |
| $1$ | $n,k\leq 18$ | $20$ |
| $2$ | $n,k\leq 50$ | $30$ |
| $3$ | $n,k\leq 500$ | $30$ |
| $4$ | 无特殊性质 | $30$ |
### 【说明】
本题分值按 COCI 原题设置,满分 $110$。
题目译自 [COCI2023-2024](https://hsin.hr/coci/archive/2023_2024/) [CONTEST #1](https://hsin.hr/coci/archive/2023_2024/contest1_tasks.pdf) _**T4 Kocke**_。