結果
| 問題 | No.3401 Large Knapsack Problem |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-22 13:53:59 |
| 言語 | Python3 (3.15.0 + numpy 2.5.4 + scipy 1.18.1 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 372 ms / 2,000 ms |
| + 811µs | |
| コード長 | 288 bytes |
| 記録 | |
| コンパイル時間 | 624 ms |
| コンパイル使用メモリ | 14,464 KB |
| 実行使用メモリ | 58,016 KB |
| 最終ジャッジ日時 | 2026-10-21 13:10:48 |
| 合計ジャッジ時間 | 19,894 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 43 |
ソースコード
import numpy as np M=np.loadtxt(open(0),"q") N,W=M[0];v,w=M[1:].T V=W//(U:=w[i:=np.argmax(v/w)]*1000)*v[i]*1000;W%=U dp=np.full(W+1,-10**9);dp[0]=0 R=np.arange(W+1) for v,w in M[1:]: dp-=R//w*v for i in range(w):np.maximum.accumulate(dp[i::w],out=dp[i::w]) dp+=R//w*v print(V+dp.max())