No.3043 括弧列の数え上げ
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 54
作問者 :
Nauclhlt🪷
/ テスター :
eiram
Blue_S
naniwazu
タグ : / 解いたユーザー数 54
作問者 :


問題文最終更新日: 2025-02-09 01:40:52
ストーリー
eiramくんは対応が取れた括弧列を愛していますが、()()()
よりも((()))
の方が価値が高いと考えています。
ある長さの対応が取れた括弧列にeiramくんはどれだけ価値を感じるでしょうか?
問題文
ある文字列が対応が取れた括弧列であるとは、次を満たすことをいいます。(これは競技プログラミングの問題文でよく見られる定義と同じです)
- に連続部分文字列として含まれる
()
を削除する操作を0回以上繰り返してを空文字列とすることができる
例えば()(())
や()()()()
は対応が取れた括弧列ですが、))((
や)()()(
などは対応が取れた括弧列ではありません。
ある対応が取れた括弧列に対して、次の手続きを行った後のの値をとします。
(
ならば、にを追加する)
ならば、「の開区間を取り出した文字列が対応が取れた括弧列」を満たすをから取り除き、その後にの要素数を加算する
例えば、()(())
()()()
です。
正整数が与えられるので、長さの対応が取れた括弧列として考え得るすべての文字列に対するの総和を求めてください。
答えは非常に大きくなることがあるので、で割った余りを求めてください。
文字列に関する表記
ある文字列について、の長さをとしたとき、での番目の文字を表します。入力
- 入力はすべて整数
出力
の総和をで割った余りをとして、次の形式で1行に出力してください。
最後に改行してください。
サンプル
サンプル1
入力
2
出力
0
長さが2である対応が取れた括弧列は()
のみです。()
なので、0
を出力します。
サンプル2
入力
4
出力
1
長さが4である対応が取れた括弧列は(())
と()()
の2つです。(())
, ()()
より、1
を出力します。
サンプル3
入力
11
出力
0
長さが11である対応が取れた括弧列は存在しません。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。