No.2291 Union Find Estimate
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 96
作問者 : t98slider / テスター : 箱星
タグ : / 解いたユーザー数 96
作問者 : t98slider / テスター : 箱星
問題文最終更新日: 2023-11-18 08:07:42
問題文
ゆきこちゃんは0
から9
までの10種類の数字からなる $W$ 桁の暗証番号を設定しましたが、忘れてしまいました。
そこで $H$ 回のお問い合わせで暗証番号に関するヒントを得ました。
お問い合わせで得られた返信はそれぞれ0
から9
、a
からz
、?
の 37種類の文字種からなる $W$ 文字で構成される文字列です。
$i$ ($1 \leq i \leq H $) 回目のお問い合わせの返信を $Q_{i}$ とし、$ i $ 回目のお問い合わせの返信の $j$ ($1 \leq j \leq W$) 文字目を $Q_{i,j}$ とします。
$Q_{i, j}$ はそれぞれ以下の情報を持ちます。
- $Q_{i,j}$ に
0
から9
までの数字が書かれていた場合
暗証番号の左から $j$ 桁目がその数字であることを意味します。 - $Q_{i,j}$ に
a
からz
までのアルファベットが書かれていた場合
$i$ 回目のお問い合わせの返信において $Q_{i,j} = Q_{i, k}$ となる $k$ について暗証番号の左から $j$ 桁目と左から $k$ 桁目が同じ数字であることを意味します。 - $Q_{i,j}$ に
?
が書かれていた場合
$i$ 回目のお問い合わせの返信で暗証番号の左から $j$ 桁目に関する情報が与えられていないことを意味します。
なお、$i$ 回目のお問い合わせについて $j < i$ を満たす $j$ 回目のお問い合わせの情報が引き継がれているものとします。
入力
$W\ H$ $Q_{1}$ $Q_{2}$ $Q_{3}$ $\ \vdots$ $Q_{i}$ $\ \vdots$ $Q_{H}$
- $1\leq W, H \leq 2 \times 10^{5} $
- $1\leq W \times H \leq 2 \times 10^{5}$
- $W, H$ は整数である。
- $1 \leq i \leq H$ について $|Q_{i}| = W$ を満たす。
- $Q_{i}$ は
0
から9
、a
からz
、?
のいずれか37種類の文字から成る文字列である。
出力
$i$ ($1 \leq i \leq H $) 行目に $i$ 回目のお問い合わせの返信を受け取った段階で、暗証番号として考えられるものが何通りあるか $\bmod\ 998244353$ で出力してください。最後に改行してください。
サンプル
サンプル1
入力
3 4 ??? b1b cc? ??2
出力
1000 10 1 0
- 1回目のお問い合わせでは、何の情報も得られませんでした。
000
~999
までの1000通りの暗証番号が考えられるため1000
を出力します。 - 2回目のお問い合わせでは、左から1桁目と3桁目が等しく、左から2桁目が1であるという情報が得られました。
010
、111
、212
、313
、414
、515
、616
、717
、818
、919
の10通りの暗証番号が考えられるため10
を出力します。 - 3回目のお問い合わせでは、左から1桁目と2桁目が等しいという情報が得られました。2回目のお問い合わせの内容と合わせると、暗証番号は
111
の1通りに定まるため1
を出力します。 - 4回目のお問い合わせでは、左から3桁目が2であるという情報が得られました。これまでの情報と合わせると、2桁目が1であるという情報と矛盾することになるので暗証番号として考えられるものは0通りとなります。よって、
0
を出力します。
サンプル2
入力
13 7 6qwfrtydfhjsf 6d?lghjknlmca ?df??1??????1 ?q??fg?2????g ?3zxcvbnmasdf 6?aaa??2????1 ?????z???zbed
出力
17556470 1755647 10000000 1000000 100000 1000 1000
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。