AT_abc017_4 [ABC017D] サプリメント
题目描述
健康志向的高桥君决定服用通过网购购买的保健品。
共有 $N$ 个保健品,编号从 $1$ 到 $N$。
保健品的口味有 $M$ 种,编号从 $1$ 到 $M$。第 $i$ 个保健品的口味为 $f_i$,其中 $1 \leq f_i \leq M$。
高桥君打算按照编号顺序,在多天内依次服用这些保健品。为了防止偷懒,他规定只要还有剩余的保健品,每天必须至少服用一个。
高桥君身体强壮,每天可以服用任意数量的保健品,但同一天内不能服用两种相同口味的保健品,因为会吃腻。
高桥君想知道,在上述条件下,总共有多少种不同的服用方式。
这里,若存在某一天所服用的保健品编号的组合不同,则认为两种服用方式不同。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $f_1$ $f_2$ : $f_N$
- 第 $1$ 行包含两个整数 $N\ (1 \leq N \leq 100,000)$ 和 $M\ (1 \leq M \leq 100,000)$,分别表示保健品的数量和口味的种类数。
- 接下来的 $N$ 行,每行一个整数 $f_i\ (1 \leq f_i \leq M)$,表示第 $i$ 个保健品的口味。
输出格式
输出服用方式的总数对 $1,000,000,007\ (=1000000007)$ 取模的结果。输出末尾需换行。
说明/提示
## 部分分
本题设有部分分。
- 若能通过 $N \leq 5,000$ 且 $M \leq 5,000$ 的数据集 $1$,可获得 $30$ 分。
- 若能通过无额外限制的数据集 $2$,可获得 $70$ 分。
## 样例解释 1
以下是 $5$ 种可能的服用方式:
| 第 1 天 | 第 2 天 | 第 3 天 | 第 4 天 | 第 5 天 |
|:-------:|:-------:|:-------:|:-------:|:-------:|
| 保健品 1 | 保健品 2 | 保健品 3 | 保健品 4 | 保健品 5 |
| 保健品 1 | 保健品 2 | 保健品 3,4 | 保健品 5 | 无 |
| 保健品 1 | 保健品 2,3 | 保健品 4 | 保健品 5 | 无 |
| 保健品 1,2 | 保健品 3 | 保健品 4 | 保健品 5 | 无 |
| 保健品 1,2 | 保健品 3,4 | 保健品 5 | 无 | 无 |
## 样例解释 2
无论如何服用都不会吃腻。
由 ChatGPT 4.1 翻译