結果

問題 No.3483 A Forbidden Fruit
コンテスト
ユーザー 👑 loop0919
提出日時 2026-03-27 22:43:40
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
TLE  
実行時間 -
コード長 786 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 290 ms
コンパイル使用メモリ 85,120 KB
実行使用メモリ 58,880 KB
最終ジャッジ日時 2026-03-27 22:44:05
合計ジャッジ時間 4,128 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other TLE * 1 -- * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys

sys.setrecursionlimit(10**5 + 10)

INF = float("inf")


def solve():
    N, M, K = [int(s) for s in input().split()]

    remain = (N * M) - K

    # comb(m - 2, rem - 1) / comb(m - 1, rem)
    # n!*(r-1)!/r!(n-1)!
    P = remain / (M - 1) if remain < (M - 1) else 1.0

    cache = [INF] * (N)

    def dp(n):
        if cache[n] != INF:
            return cache[n]

        if (N - 1 - n) * M >= K:
            cache[n] = 1.0
            return cache[n]

        if n == 0:
            cache[n] = (1 / M) * P
            return cache[n]

        p = (M - 1) / (M * (n + 1)) * P
        p += n / (n + 1) * dp(n - 1)

        cache[n] = p
        return cache[n]

    print(dp(N - 1))


if __name__ == "__main__":
    T = int(input())

    for _ in range(T):
        solve()
0