結果
| 問題 | No.309 シャイな人たち (1) |
| コンテスト | |
| ユーザー |
tjake
|
| 提出日時 | 2015-12-02 01:53:17 |
| 言語 | Python2 (2.7.18) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,252 bytes |
| コンパイル時間 | 239 ms |
| コンパイル使用メモリ | 6,912 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-14 07:45:53 |
| 合計ジャッジ時間 | 1,391 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 4 WA * 9 |
ソースコード
r, c = map(int, raw_input().split())
raw_input()
p = [map(int, raw_input().split()) + [0] for i in xrange(r)] + [[0]*(c+1)]
raw_input()
s = [map(int, raw_input().split()) + [4] for i in xrange(r)] + [[4]*(c+1)]
def f(a, b, c):
r = 1.0
r *= dpp[j] if a else 1.0-dpp[j]
r *= dpi[j-1] if b else 1.0-dpi[j-1]
r *= dpi[j+1] if c else 1.0-dpi[j+1]
return r
dp = [[0.5]*c + [0] for i in xrange(r)] + [[0]*(c+1)]
ans = 0.0
for i in xrange(r):
si = s[i]
pi = p[i]
dpp = dp[i-1]
dpi = dp[i]
update = 1
resd = -1
while update:
update = 0
res = 0.0
for j in xrange(c):
if si[j]==0:
nxt = pi[j]/100.0
elif si[j]==1:
nxt = pi[j]*(1.0 - f(0,0,0))/100.0
elif si[j]==2:
nxt = pi[j]*(f(1,1,1)+f(1,1,0)+f(1,0,1)+f(0,1,1))/100.0
elif si[j]==3:
nxt = pi[j]*f(1,1,1)/100.0
else:
nxt = 0.0
if not nxt-1e-12 < dpi[j] < nxt+1e-12:
update = 1
dpi[j] = nxt
for j in xrange(c):
res += dpi[j]
if not resd-1e-12 < res < resd+1e-12:
update = 1
resd = res
ans += resd
print ans
tjake