結果
| 問題 | No.3401 Large Knapsack Problem |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-22 13:53:59 |
| 言語 | Python3 (3.14.2 + numpy 2.4.0 + scipy 1.16.3) |
| 結果 |
AC
|
| 実行時間 | 878 ms / 2,000 ms |
| コード長 | 288 bytes |
| 記録 | |
| コンパイル時間 | 597 ms |
| コンパイル使用メモリ | 20,808 KB |
| 実行使用メモリ | 61,200 KB |
| 最終ジャッジ日時 | 2026-01-22 13:54:46 |
| 合計ジャッジ時間 | 38,949 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 42 |
ソースコード
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())