No.3500 01 String
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 78
作問者 :
rhoo
/ テスター :
Naru820
Nzt3
Solalyth
タグ : / 解いたユーザー数 78
作問者 :
Solalyth
問題文最終更新日: 2026-04-14 14:57:40
CPCTF 2026: PPCの他の問題:
問題文
traP にはデジタル創作初心者向けに 0→1 講習会というものがあります。
長さ $N$ の $0$ と $1$ からなる文字列 $A$ が与えられます。文字列の $i$ 番目 ($1 \le i \le N$) の要素を $A_i$ と表します。
この文字列に対する、次の操作を考えます。
- $1 \le i \le N$ を満たす整数 $i$ を選ぶ。
- $A_i = 0$ かつ $i < N$ なら、$A_{i+1}$ を $0$ にする。
- $A_i = 1$ かつ $i > 1$ なら、$A_{i-1}$ を $1$ にする。
文字列 $A$ からこの操作を $0$ 回以上行うことで作ることができる文字列の個数を $998244353$ で割ったあまりを出力してください。
制約
- $1 \le N \le 5 \times 10^5$
- $A$ は長さ $N$ の $0,1$ のみからなる文字列
入力
入力は以下の形式で標準入力から与えられます。
$N$ $A$
出力
求める個数を $998244353$ で割ったあまりを 1 行で出力してください。
サンプル
サンプル1
入力
2 01
出力
3
到達可能な文字列は 01, 00, 11 の 3 通りです。
サンプル2
入力
4 1111
出力
1
どの位置を選んでも文字列は変化しないため、到達可能な文字列は 1111 の 1 通りです。
サンプル3
入力
42 010100101010101010110101000101101100101001
出力
211079167
$998244353$ で割ったあまりを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。