筑波大学プログラミングコンテスト2025
コンテスト日時
2025/11/16 (Su) 13:15 - 16:45

N - Holy Shuffle

Darjeeling
5
s
1024
MB
1000

問題文

色 $1$、色 $2$、…、色 $N$ の $N$ 個のボールがこの順に一列に並んでおり、先頭は色 $1$ のボールです。
これから、以下の一連の操作を $K$ 回行います。

  • 先頭のボールを列から取り出して、このボールに $1$ つ穴をあける。
  • 残ったボールの列の先頭か末尾、もしくはあるボールとボールの間の合計 $N$ 箇所から一様ランダムに場所を選び、取り出したボールを挿入する。

$K$ 回の操作の後、色 $i\ (1\leq i\leq N)$ のボールにあいた穴の個数の期待値をそれぞれ $\text{mod }998244353$ で求めてください。

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

「期待値を $\text{mod }998244353$ で求める」とは 求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な $2$ つの整数 $P,Q$ を用いて $P/Q$ と表したとき、 $R\times Q\equiv P\ \pmod{998244353}$ かつ $0\leq R\lt 998244353$ を満たす整数 $R$ がただ一つ存在することが証明できます。この $R$ を求めてください。

制約

すべてのテストケースについて、以下の制約を満たす。

  • 入力はすべて整数
  • $1\leq T\leq 10^4$
  • $2\leq N\leq 2\times 10^5$
  • $1\leq K\leq 10^{18}$
  • $1$ つの入力における $N$ の総和は $2\times 10^5$ を超えない。

部分点

この問題には、部分点が設定されている。部分点の採点方法については、コンテストトップ を参照すること。

  1. ($200$ 点)
  • $N \leq 100$
  • $1$ つの入力における $N^3$ の総和は $10^6$ を超えない。
  1. ($300$ 点)
  • $N \leq 2000$
  • $1$ つの入力における $N^2$ の総和は $4\times 10^6$ を超えない。
  1. ($500$ 点)
  • 追加の制約はない。

入力

入力は以下の形式で標準入力から与えられる。

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

$\mathrm{case}_i$ は $i$ 番目のテストケースを表す。 各テストケースは以下の形式で与えられる。

$N$ $K$

出力

$T$ 行出力せよ。
$i$ 行目 $(1\leq i\leq T)$ には、$i$ 個目のテストケースに対する色 $1$、色 $2$、…、色 $N$ についての答えを、順に空白区切りで出力せよ。

入力例 1
3 4 3 3 1 2 1000000000000000000
出力例 1
499122178 873463810 623902721 0 1 0 0 857157626 857157625

$1$ つ目のテストケースについて、以下は行われる操作の一例です。

  • はじめ、ボールの色の並びは $(1,2,3,4)$ である。
  • 先頭の色 $1$ のボールに穴をあける。色 $3$ のボールと色 $4$ のボールの間が選ばれ、ボールの色の並びが $(2,3,1,4)$ となる。
  • 先頭の色 $2$ のボールに穴をあける。先頭が選ばれ、ボールの色の並びが $(2,3,1,4)$ となる。
  • 先頭の色 $2$ のボールに穴をあける。末尾が選ばれ、ボールの色の並びが $(3,1,4,2)$ となる。

求める期待値は $(E_1,E_2,E_3,E_4)=(3/2,9/8,3/8,0)$ となります。

また、$2$ つ目のテストケースについて、色 $1$ のボールにのみ $1$ つだけ穴があきます。

この入力は、部分点 1., 2., 3. の制約を満たします。

提出
C++23 (g++ 12.2.0)