結果

問題 No.266 最終進化を目指せ
ユーザー maspy
提出日時 2020-03-18 01:06:33
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 31 ms / 2,000 ms
コード長 735 bytes
コンパイル時間 378 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 10,752 KB
最終ジャッジ日時 2024-11-30 23:39:27
合計ジャッジ時間 2,283 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/usr/bin/env python3.8
# %%
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines


# %%
N, *S = map(int, read().split())

# %%
INF = 10 ** 9
dp = [[INF] * (N + 1) for _ in range(11)]
dp[0][0] = 1
for kakusei in range(11):
    if kakusei <= S[0]:
        dp[kakusei][0] = kakusei + 1
    for lv in range(1, N + 1):
        if S[lv] < kakusei:
            continue
        x = dp[kakusei][lv - 1] + 1
        for k in range(kakusei):
            cost = dp[kakusei - k - 1][lv]
            y = dp[k][lv] + cost
            if x > y:
                x = y
        dp[kakusei][lv] = x


# %%
answers = (dp[k][-1] for k in range(S[-1] + 1))
print(' '.join(map(str, answers)))
0