結果
| 問題 |
No.1547 [Cherry 2nd Tune *] 偶然の勝利の確率
|
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2025-02-23 21:54:33 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 585 ms / 2,000 ms |
| コード長 | 855 bytes |
| コンパイル時間 | 326 ms |
| コンパイル使用メモリ | 82,584 KB |
| 実行使用メモリ | 77,312 KB |
| 最終ジャッジ日時 | 2025-02-23 21:54:45 |
| 合計ジャッジ時間 | 10,661 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
M=998244353
ma,na,s=map(int,input().split())
mb,nb,t=map(int,input().split())
k=int(input())
pa=ma*pow(na,M-2,M)%M
pb=mb*pow(nb,M-2,M)%M
l=s+1+t
def seki(a,b):
c=[[0]*l for i in range(l)]
for i in range(l):
for j in range(l):
for k in range(l):
c[i][j]+=a[i][k]*b[k][j]
c[i][j]%=M
return c
A1=[[0]*l for i in range(l)]
A1[0][0]=1
A1[-1][-1]=1
for i in range(-t+1,s):
for j in range(i,s+1):
A1[j+t][i+t]+=pow(pa,j-i,M)*((1-pa) if j<s else 1)
A1[j+t][i+t]%=M
A2=[[0]*l for i in range(l)]
A2[0][0]=1
A2[-1][-1]=1
for i in range(-t+1,s):
for j in range(-t,i+1):
A2[j+t][i+t]+=pow(pb,i-j,M)*((1-pb) if j>-t else 1)
A2[j+t][i+t]%=M
A=seki(A2,A1)
B=[[0]*l for i in range(l)]
for i in range(l):
B[i][i]=1
for i in range(30):
if (k>>i)&1:
B=seki(A,B)
A=seki(A,A)
print(B[-1][t])
print(B[0][t])
sasa8uyauya