結果

問題 No.324 落ちてた閉路グラフ
ユーザー rpy3cpp
提出日時 2015-12-18 22:45:58
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 2,514 ms / 5,000 ms
コード長 1,412 bytes
コンパイル時間 506 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 11,648 KB
最終ジャッジ日時 2024-11-15 19:36:28
合計ジャッジ時間 21,278 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 34
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

n, m = map(int, input().split())
ws = list(map(int, input().split()))
def solve(n, m, ws):
if m <= 1:
return 0
f00 = [-float('inf')] * (m + 1)
f01 = f00[:]
f10 = f00[:]
f11 = f00[:]
g00 = f00[:]
g01 = f00[:]
g10 = f00[:]
g11 = f00[:]
# 1, 2 4
f00[0] = 0 # 1
f01[1] = 0 # 1
f10[1] = 0 # 1
f11[2] = ws[0] # 1( 2)
for i, w in enumerate(ws[1:-1], 3): # 3=2
for k in range(max(1, m + i - n), min(i, m) + 1):
g00[k] = max(f00[k], f01[k])
g01[k] = max(f00[k - 1], f01[k - 1] + w)
g10[k] = max(f10[k], f11[k])
g11[k] = max(f10[k - 1], f11[k - 1] + w)
f00, g00 = g00, f00
f01, g01 = g01, f01
f10, g10 = g10, f10
f11, g11 = g11, f11
f00[0] = 0
f11[m] += ws[-1]
return max(f00[m], f01[m], f10[m], f11[m])
print(solve(n, m, ws))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0