結果
問題 |
No.298 話の伝達
|
ユーザー |
|
提出日時 | 2015-11-07 01:23:41 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 737 bytes |
コンパイル時間 | 84 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 17,820 KB |
最終ジャッジ日時 | 2024-09-13 13:30:51 |
合計ジャッジ時間 | 22,021 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 TLE * 1 -- * 4 |
ソースコード
def read_data(): N, M = map(int, input().split()) Cs = [dict() for i in range(N)] for m in range(M): src, dst, c = map(int, input().split()) Cs[dst][src] = c/100 return N, M, Cs def solve(N, M, Cs): prob = 0 for on_off in range(1 + (1 << (N - 1)), 1 << N, 2): prob += calc_prob(on_off, N, Cs) return prob def calc_prob(on_off, N, Cs): prob = 1 for v in range(1, N): p_off = 1 for u, c in Cs[v].items(): if not on_off & (1 << u): continue p_off *= (1 - c) if on_off & (1 << v): prob *= (1 - p_off) else: prob *= p_off return prob N, M, Cs = read_data() print(solve(N, M, Cs))