結果
| 問題 |
No.813 ユキちゃんの冒険
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-07-02 00:56:20 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 695 ms / 2,000 ms |
| コード長 | 875 bytes |
| コンパイル時間 | 182 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 44,396 KB |
| 最終ジャッジ日時 | 2024-12-26 06:01:14 |
| 合計ジャッジ時間 | 21,002 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 |
ソースコード
import sys
input = lambda : sys.stdin.readline().rstrip()
sys.setrecursionlimit(2*10**5+10)
write = lambda x: sys.stdout.write(x+"\n")
debug = lambda x: sys.stderr.write(x+"\n")
writef = lambda x: print("{:.12f}".format(x))
import numpy as np
n = int(input())
p = float(input())
q = float(input())
if p==1:
x = 1
elif q==0:
x = p
elif n==1:
x = p
else:
dp0 = [0]*(n+1)
dp1 = [0]*(n+1)
dp0[0] = np.array((1,0), dtype=np.float64)
dp1[0] = np.array((0,1), dtype=np.float64)
for i in range(1,n+1):
dp0[i] = (dp0[i-1]- p*dp1[i-1]) / q
dp1[i] = q*dp1[i-1] + p*dp0[i]
# dp0[i] = (dp0[i-1]- p*dp1[i-1]) / q
# dp1[i] = q*dp1[i-1] + p*dp0[i]
if 1:
v = np.linalg.norm(dp0[i])
dp0[i], dp1[i] = dp0[i]/v, dp1[i]/v
a0,b0 = dp0[n]
a1,b1 = dp1[n]
x = (p*b1-b0) / (a0-p*a1)
print(x)