AT_abc017_4.[ABC017D] サプリメント

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

健康志向的高桥君决定服用通过网购购买的保健品。

共有 NN 个保健品,编号从 11 到 NN。

保健品的口味有 MM 种,编号从 11 到 MM。第 ii 个保健品的口味为 fif_i,其中 1≤fi≤M1 \leq f_i \leq M。

高桥君打算按照编号顺序,在多天内依次服用这些保健品。为了防止偷懒,他规定只要还有剩余的保健品,每天必须至少服用一个。

高桥君身体强壮,每天可以服用任意数量的保健品,但同一天内不能服用两种相同口味的保健品,因为会吃腻。

高桥君想知道,在上述条件下,总共有多少种不同的服用方式。

这里,若存在某一天所服用的保健品编号的组合不同,则认为两种服用方式不同。

输入格式

输入通过标准输入给出,格式如下:

NN MM f1f_1 f2f_2 : fNf_N

  • 第 11 行包含两个整数 N (1≤N≤100,000)N\ (1 \leq N \leq 100,000) 和 M (1≤M≤100,000)M\ (1 \leq M \leq 100,000),分别表示保健品的数量和口味的种类数。
  • 接下来的 NN 行,每行一个整数 fi (1≤fi≤M)f_i\ (1 \leq f_i \leq M),表示第 ii 个保健品的口味。

输出格式

输出服用方式的总数对 1,000,000,007 (=1000000007)1,000,000,007\ (=1000000007) 取模的结果。输出末尾需换行。

输入输出样例

  • 输入#1

    5 2
    1
    2
    1
    2
    2

    输出#1

    5
  • 输入#2

    6 6
    1
    2
    3
    4
    5
    6

    输出#2

    32

说明/提示

部分分

本题设有部分分。

  • 若能通过 N≤5,000N \leq 5,000 且 M≤5,000M \leq 5,000 的数据集 11,可获得 3030 分。
  • 若能通过无额外限制的数据集 22,可获得 7070 分。

样例解释 1

以下是 55 种可能的服用方式:

第 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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页