問題一覧 > 通常問題

No.2058 Binary String

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 96
作問者 : taiga0629kyopro / テスター : nok0 👑 ygussany
4 ProblemId : 8334 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-09-15 00:30:48

問題文

正整数 N,KN,K が与えられます。 長さ NN の数列のうち次の条件を満たすものを良い数列と呼ぶことにします。

  • 1iN1 \le i \le N を満たす全ての整数 ii に対して Si{0,1} S_i \in \lbrace 0,1 \rbrace
  • i=1NSi0 (mod 2)\displaystyle \sum_{i=1}^N S_i \equiv 0 \ (\mathrm{mod}\ 2)

また良い数列 SS に対して次の操作を 00 回以上行なって SS の要素を全て 00 にするための最小操作回数を f(S)f(S) とします。(SS が良い数列ならば f(S)f(S) は有限の値になります。)

  • 1iN11 \le i \le N-1 を満たす整数 ii を一つ選び SiS_i1Si1-S_i に、Si+1S_{i+1}1Si+11-S_{i+1} に置き換える

良い数列 SS2N12^{N-1} 個ありますが、その全てに対して f(S)f(S)K^K を求め、その総和を 998244353998244353 で割った余りを求めてください。

入力

NN KK

  • 2N2×1052 \le N \le 2×10^5
  • 1K2×1051 \le K \le 2×10^5
  • 入力は全て整数
  • 出力

    f(S)Kf(S)^K の総和を 998244353998244353 で割った余りを出力してください。

    サンプル

    サンプル1
    入力
    3 2
    出力
    6

    f((0,0,0))=0f((1,1,0))=f((0,1,1))=1f((1,0,1))=2f((0,0,0))=0、f((1,1,0))=f((0,1,1))=1、f((1,0,1))=2です。よって答えは 12+12+22=61^2+1^2+2^2=6 となります。

    サンプル2
    入力
    10 3
    出力
    62208

    サンプル3
    入力
    200000 2
    出力
    829773566

    提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。