atcoder#ABC215E. [ABC215E] Chain Contestant

[ABC215E] Chain Contestant

题目描述

別世界の AtCoder では現在、 AAC, ..., AJC の 10 10 種類のコンテストが開催されており、これから N N 回のコンテストが開催されます。
各コンテストの種類は文字列 S S として与えられ、 S S i i 文字目が x x なら i i 回目には Ax x C が開催されます。
シカの AtCoDeer くんは、 N N 個のコンテストから 1 1 個以上いくつか選んで、以下の条件を満たすように選んで出場します。

  • 出るコンテストを順番を保ったまま抜き出したとき、コンテストの種類ごとにひとかたまりとなっている。
    • 厳密には、 AtCoDeer くんが x x 個のコンテストに出場し、そのうち i i 回目のコンテストの種類が Ti T_i であるとき、全ての 1  i < j < k  x 1\ \le\ i\ <\ j\ <\ k\ \le\ x を満たす整数組 (i,j,k) (i,j,k) に対して、 Ti=Tk T_i=T_k であるならば Ti=Tj T_i=T_j でなければならない。

AtCoDeer くんが出場するコンテストの選び方として考えられるものの総数を 998244353 998244353 で割った余りを求めてください。
ただし、 2 2 つのコンテストの選び方が異なるとは、あるコンテスト c c が存在して、片方の選び方では c c に出場するがもう片方の選び方では出場しないということを指します。

输入格式

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

N N S S

输出格式

答えを整数として出力せよ。

题目大意

给定一个长度为 N(1N103)N(1 \le N \le 10^3) 的只含有字符 A\texttt{A}J\texttt{J} 字符串 SS,你需要寻找出一个字符串子集 TT 满足:

  • 任意一对 (i,j,k)(1i<j<kN)(i,j,k)(1 \le i < j < k \le N) 的三元组,如果 Ti=TkT_i=T_k,那么 Ti=TjT_i=T_j 一定成立。

求出子集 TT 的方案数,答案对 998244353998244353 取模。

Translated by

/user/577880

4
BGBH
13
100
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBIEIJEIJIJCGCCFGIEBIHFCGFBFAEJIEJAJJHHEBBBJJJGJJJCCCBAAADCEHIIFEHHBGF
330219020

提示

制約

  • 1  N  1000 1\ \le\ N\ \le\ 1000
  • S=N |S|=N
  • S S A から J までの英大文字のみからなる

Sample Explanation 1

例えば、 1,3 1,3 回目のコンテストに出場する、 2,4 2,4 回目のコンテストに出場するという選び方は条件を満たします。 一方、 1,2,3,4 1,2,3,4 回目のコンテストに出場する場合、 ABC への出場がひとかたまりになっておらず、整数組 (i,j,k)=(1,2,3) (i,j,k)=(1,2,3) について条件に違反します。 また、全てのコンテストに出場しないということも認められません。 問題文の条件に適する出場するコンテストの選び方は 13 13 通りあります。

Sample Explanation 2

総数を 998244353 998244353 で割った余りを求めることに注意してください。