atcoder#AGC031A. [AGC031A] Colorful Subsequence

[AGC031A] Colorful Subsequence

配点 : 200200

問題文

長さ NN の文字列 SS が与えられます。 SS の部分列であって、すべて異なる文字からなるものの数を 109+710^9+7 で割った余りを答えてください。文字列として同一でも、異なる位置から取り出された部分列は区別して数えることとします。

ただし、文字列の部分列とは、文字列から文字をいくつか 正の個数 取り出し、もとの文字列から順序を変えずにつなげたものを指します。

制約

  • 1N1000001 \leq N \leq 100000
  • SS は英小文字からなる
  • S=N|S|=N

入力

入力は以下の形式で標準入力から与えられる。

NN

SS

出力

異なる文字からなる部分列の個数を 109+710^9+7 で割った余りを出力せよ。

4
abcd
15

SS 自体がすべて異なる文字からなるので、すべての部分列が条件を満たします。

3
baa
5

b, a (22 通り), ba (22 通り) の合計 55 通りが答えとなります。baa などはa22 回現れるため当てはまらないことに注意してください。

5
abcab
17