問題一覧 > 通常問題

No.2530 Yellow Cards

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 80
作問者 : 👑 AngrySadEightAngrySadEight / テスター : shobonvipshobonvip
1 ProblemId : 10273 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-10-24 23:57:16

問題文

ここに,$10^{100}$ 人の選手からなるスポーツチームがあり,各選手には $1, 2, \dots, 10^{100}$ の背番号がそれぞれ一対一に割り当てられています.

試合は,チーム内の選手のうちの $N$ 人がプレイエリアにいて,残りがベンチにいる状態で行われます.試合は,背番号 $1$ から $N$ までの選手がプレイエリアにいる状態で開始されます.

試合中,プレイエリアにいる選手に対してイエローカードが提示されることがあります.イエローカードを提示された選手は,次に示す扱いを受けます.

  • 試合中にその選手に対して初めてイエローカードが提示された場合は,何も起こらない.
  • 試合中にその選手に対して $2$ 回目にイエローカードが提示された場合は,即座にその選手はプレイエリアから退場となる.代わりに,試合中にまだプレイエリアにいたことのない選手の中で,背番号の値が最も小さい選手が,プレイエリアに入る.

さて,ある試合の開始後,次に示すイベントが $K$ 回起こりました.

  • プレイエリアにいる選手が無作為に一人選ばれ,その選手に対してイエローカードが提示される.

$K$ 回のイベントが起こった直後の時点にプレイエリアにいる選手の背番号の最大値の期待値を,以下の注記に示すように $\bmod{998244353}$ で出力してください.

なお,$1$ 回目のイベントが起こる前には,どの選手にもイエローカードは提示されていないものとします.

注記

求める値は有理数となることが証明できます.また,この問題の制約下では,その値を互いに素な $2$ つの整数 $P,Q$ を用いて $\frac{Q}{P}$ と表したとき,$RP \equiv Q \pmod{998244353}$ かつ $0 \leq R < 998244353$ を満たす整数 $R$ がただ一つ存在することが証明できます.この $R$ を出力してください.

制約

  • 入力は全て整数である.
  • $1 \leq N, K \leq 5000$

入力

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

$N$ $K$

出力

$K$ 回のイベント終了直後の時点にプレイエリアにいる選手の背番号の最大値の期待値を,$\bmod{998244353}$ で出力せよ.

サンプル

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

最初,プレイエリアには背番号 $1, 2, 3$ の選手がいます.

例えば,背番号 $1$ の選手に $2$ 回イエローカードが提示された場合,背番号 $1$ の選手が退場し,代わりに背番号 $4$ の選手がプレイエリアに入ります.この場合,背番号の最大値は $4$ となります.

一方で,背番号 $1$,背番号 $3$ の選手にこの順番でイエローカードが提示された場合は,どの選手も退場しません.この場合,背番号の最大値は $3$ となります.

ほかの場合も考えることで,背番号の最大値が $3$ になる確率は $\frac{2}{3}$,$4$ になる確率は $\frac{1}{3}$ となり,背番号の最大値がこの値以外になることはないことがわかります.

したがって,求める期待値は $3 \times \frac{2}{3} + 4 \times \frac{1}{3} = \frac{10}{3}$ となります.$3 \times 332748121 \equiv 10 \pmod{998244353}$ であるため,$332748121$ を出力してください.

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

どのようなイエローカードの提示のされ方でも,背番号の最大値は必ず $3$ となります.よって,求める期待値も $3$ です.

サンプル3
入力
1 5000
出力
2501

プレイエリアに選手が $1$ 人しかいません.$5000$ 回のイベントの中で,選手の退場が $2500$ 回行われ,イベント終了直後の時点でプレイエリアにいる選手の背番号の値は $2501$ となります.

サンプル4
入力
11 2023
出力
35139493

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