問題一覧 > 通常問題

No.3215 Make K types-able

レベル : / 実行時間制限 : 1ケース 4.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 30
作問者 : yuusaan / テスター : lif4635 👑 loop0919 Cafe1942
ProblemId : 12535 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-07-25 21:11:16

リスペクト

本問題はkobaryu325氏によって提供された原案を一部改題したものです。

問題文

この問題では、各要素が $0$ か $1$ である配列を01配列と呼ぶものとします。

正整数 $N,K$ が与えられます。以下の条件を満たす長さ $2^N -1$ の01配列 $X=(X_1,X_2,\dots , X_{2^N-1})$ の個数を求めてください。

  • はじめ $a_1 = 1,a_i = -1\ (2\le i\le N)$ である長さ $N$ の配列 $a$ に対して以下の操作を $0$ 回以上行ったあとの $a_N$ としてあり得る値はちょうど $K$ 種類である。
    • $a_x \neq -1$ , $X_{a_x} = 1$ , $X_{2a_x} = 1$ である $x$ を一つ選び、 $a_{x+1}$ を $2a_x$ に置き換える。
    • $a_x \neq -1$ , $X_{a_x} = 1$ , $X_{2a_x+1} = 1$ である $x$ を一つ選び、 $a_{x+1}$ を $2a_x+1$ に置き換える。

ただし、答えは極めて大きくなる可能性があるので、答えを $998244353$ で割ったあまりを求めてください。

$T$ 個のテストケースについて、それぞれ答えを求めてください。

入力

$T$
$\mathrm{case}_1$
$\mathrm{case}_2$
$\vdots$
$\mathrm{case}_T$

各テストケースは以下の形式で与えられます。

$N\ K$

制約

  • $1\le T\le 2\times 10^5$
  • $2\le N \le 2\times 10^5$
  • $1\le K \le $ $10$
  • $N,K$ は整数

出力

$T$ 行出力してください。$i$ 行目には、 $i$ 番目のテストケースについての答えを $998244353$ で割ったあまりを出力してください。

最後に改行してください。

サンプル

サンプル1
入力
2
2 2
100 10
出力
2
95769305

$1$ つめのテストケースについて、条件を満たす配列は $(1,0,1),(1,1,0)$ の $2$ つです。

$X=(1,0,1)$ について考えます。操作後の $a$ としてあり得るものは以下の $2$ つです。

  • 操作を行わない。このとき、 $a_N=a_2=-1$ である。
  • $x=1$ として二番目の操作を一度だけ行い、 $a=(1,3)$ とする。特に、 $a_N=a_2=3$ となる。

したがって、操作後の $a_N$ としてあり得る整数は $2$ 種類であるため、この $X$ は条件を満たします。

一方、 $X=(1,1,1)$ は操作後の $a_N$ として $-1,2,3$ の $3$ 種類の整数があり得るため、条件を満たしません。

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