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**_。