H - Huge Segment Tree
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 100 点
問題文
整数 i,j (0 \leq i \leq K, 0 \leq j < 2^{K-i}) を用いて [2^i j, 2^i (j+1)) と表せる区間をセグメント木的な区間と呼ぶことにします。
整数 l,r (0 \leq l < r \leq 2^K) に対し、区間 [l,r) をセグメント木的な区間の和集合として表す方法は必ず 1 つ以上あることが証明できます。このときの用いる区間の最小個数を f(l,r) と表します。
k = 1,2,\dots,2K-2 それぞれに対して、以下の問題を解いてください。
整数 l,r (0 \leq l < r \leq 2^K) の組であって、f(l,r)=k となるような組の総数を 998244353 で割った余りを求めてください。
制約
- 入力は全て整数
- 2 \leq K \leq 5 \times 10^5
入力
入力は以下の形式で標準入力から与えられる。
K
出力
k = 1,2,\dots,2K-2 のときの問題の答えをこの順に空白区切りで出力せよ。
入力例 1
3
出力例 1
15 14 6 1
たとえば k = 4 のときは、f(l, r) = k となるのは l = 1, r = 7 のときのみなので、1 を出力します。
入力例 2
5
出力例 2
63 110 132 114 70 30 8 1
入力例 3
10
出力例 3
2047 4975 10896 21772 38360 58724 77184 86312 81448 64324 42112 22576 9744 3304 848 155 18 1