問題一覧 > 通常問題

No.3187 Mingle

レベル : / 実行時間制限 : 1ケース 2.500秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 32
作問者 : 蜜蜂 / テスター : Mitarushi
ProblemId : 12359 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-06-20 22:31:07

問題文

$3$ 以上の正整数 $N$ と素数 $P$ が与えられます.また,あなたは $a = N$ で初期化された変数 $a$ を持っています.
あなたは $a$ が $2$ 以下になるまで,以下の操作を繰り返し行います.

  • $1$ 以上 $a$ 以下の非負整数 $b$ を一様ランダムに選択する.$a$ を $b$ で割ったあまりを $c$ として,$a$ を $a - c$ で置き換える.ここで,$b$ は操作ごとに独立して選択されます.

操作回数の期待値を $\mathrm{mod} \ P$ で求めてください.

ここで,入力で与えられる $N, P$ について $\mathrm{mod} \ P$ で答えが定義できる入力のみ与えられます.
厳密には,入力で与えられる $N$ について操作回数の期待値は必ず有理数であり互いに素な非負整数 $x, y$ を用いて $\frac{x}{y}$ と表すことが保証されます.また入力で与えられる $P$ について $y \not\equiv 0 \ (\mathrm{mod} \ P)$ であることが保証されます.このとき $yz \equiv x \ (\mathrm{mod} \ P), 0 \leq z < P$ なる非負整数 $z$ が一意に定まるため,この $z$ を出力してください.

入力

$N\ \ P$

  • $3 \leq N \leq 3 \times 10^5$
  • $9 \times 10^8 \leq P \leq 10^9$
  • $P$ は素数
  • 入力はすべて整数
  • $\mathrm{mod} \ P$ で答えが定義できる

出力

操作回数の期待値を $\mathrm{mod} \ P$ で出力し,改行してください.

サンプル

サンプル1
入力
5 998244353
出力
332748125

例えば,以下のような操作の結果が考えられます.

  • $1$ 回目の操作では $b = 3$ を選択する.$c = 2$ より $a$ は $5 - 2 = 3$ で置き換えられる.
  • $2$ 回目の操作では $b = 2$ を選択する.$c = 1$ より $a$ は $3 - 2 = 1$ で置き換えられる.
このとき,操作回数は $2$ 回であり,またこの結果になる確率は $\frac{1}{15}$ です.

操作回数の期待値は $\frac{22}{3}$ となることが証明できます.

サンプル2
入力
50 998244353
出力
411546056

サンプル3
入力
500 998244353
出力
854038998

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