第 017 场 AtCoder Beginner Contest
翻译中…
Problem Statement
翻译中…
健康志向の高橋君は通販で購入したサプリメントを摂取することにした。
翻译中…
サプリメントは $N$ 個あり、$1$ から $N$ まで番号が付けられている。
翻译中…
また、サプリメントの味は $M$ 種類あり、$1$ から $M$ まで番号が付けられている。サプリメント $i (1 ≦ i ≦ N)$ の味は $f_i (1 ≦ f_i ≦ M)$ である。
翻译中…
高橋君はサプリメントを番号順に複数日かけて摂取する予定である。高橋君はサボらないように、サプリメントが $1$ つ以上残っている場合はその日中に必ず $1$ つ以上サプリメントを摂取しなければならないという規則を定めた。
翻译中…
高橋君は強靭な肉体を持っているため、$1$ 日にどれだけサプリメントを摂取しても大丈夫だが、同じ味には飽きてしまうので、同じ日に同じ味のサプリメントを $2$ つ以上摂取することはできない。
翻译中…
高橋君は、サプリメントの摂取方法の是非について吟味するため、このような条件下で全部で何通りの摂取方法があるかを知りたい。
翻译中…
ここで $2$ つの摂取方法についてそれらが違うというのは、ある日について摂取したサプリメントの番号の組み合わせが異なることを定義する。
翻译中…
Input
翻译中…
入力は以下の形式で標準入力から与えられる。
翻译中…
N M
f_1
f_2
:
f_N
翻译中…
$1$行目には、$2$つの整数$N (1 ≦ N ≦ 100,000)$と$M (1 ≦ M ≦ 100,000)$が空白区切りで書かれている。これはサプリメントが$N$個あり、味の種類が$M$種類あることを表す。$2$行目から$N$行には、サプリメントの味に関する情報が与えられる。これら$N$行のうち上から$i (1 ≦ i ≦ N)$行目には整数$f_i (1 ≦ f_i ≦ M)$が書かれている。これは、サプリメント$i$の味が$f_i$であることを表す。
翻译中…
部分点
翻译中…
この問題には部分点が設定されている。
翻译中…
$N ≦ 5,000$かつ$M ≦ 5,000$を満たすデータセット$1$に正解した場合は、上記とは別に$30$点が与えられる。- 追加制約のないデータセット
$2$に正解した場合は、上記とは別に$70$点が与えられる。
翻译中…
Output
翻译中…
摂取方法の総数を $1,000,000,007 (= 1000000007)$ で割ったあまりを $1$ 行に出力せよ。出力の末尾にも改行を入れること。
翻译中…
样例
Input #1
5 2
1
2
1
2
2
Output #1
5
以下の $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$ | なし | なし |
Input #2
6 6
1
2
3
4
5
6
Output #2
32
どのように食べても飽きません。
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。