提出 #31781006
ソースコード 拡げる
import numpy as np
n, W = map(int, input().split())
inf = pow(10, 10)
V = 10**3
dp = np.full((n+1, n*V+1), inf)
dp[0, 0] = 0
for i in range(n):
w, v = map(int, input().split())
np.minimum(dp[i, v:], dp[i, :-v]+w, out = dp[i+1, v:])
dp[i+1, :v] = dp[i, :v]
print(max(np.where(dp[n] <= W)[0]))
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Knapsack 2 |
| ユーザ | denovo2021 |
| 言語 | Python (3.8.2) |
| 得点 | 100 |
| コード長 | 317 Byte |
| 結果 | AC |
| 実行時間 | 162 ms |
| メモリ | 106424 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 0_00 | AC | 112 ms | 26972 KiB |
| 0_01 | AC | 110 ms | 27008 KiB |
| 0_02 | AC | 109 ms | 27128 KiB |
| 1_00 | AC | 109 ms | 26960 KiB |
| 1_01 | AC | 161 ms | 106152 KiB |
| 1_02 | AC | 162 ms | 106424 KiB |
| 1_03 | AC | 154 ms | 105900 KiB |
| 1_04 | AC | 155 ms | 106196 KiB |
| 1_05 | AC | 154 ms | 104516 KiB |
| 1_06 | AC | 156 ms | 106312 KiB |
| 1_07 | AC | 154 ms | 104632 KiB |
| 1_08 | AC | 155 ms | 104580 KiB |
| 1_09 | AC | 150 ms | 106144 KiB |
| 1_10 | AC | 152 ms | 104440 KiB |
| 1_11 | AC | 154 ms | 104484 KiB |
| 1_12 | AC | 151 ms | 101408 KiB |
| 1_13 | AC | 154 ms | 105992 KiB |
| 1_14 | AC | 153 ms | 104708 KiB |
| 1_15 | AC | 153 ms | 106024 KiB |
| 1_16 | AC | 160 ms | 106240 KiB |
| 1_17 | AC | 155 ms | 105996 KiB |