Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
113315 | 陈致钧 | 0/1背包 | C++ | 通过 | 100 | 0 MS | 304 KB | 481 | 2023-12-02 09:02:47 |
#include<bits/stdc++.h> using namespace std; int times,number; int timess[1001],scores[1001]; int backpack_dp[1001][1001]; int main() { cin>>times>>number; for(int i=1;i<=number;i++) {cin>>timess[i]>>scores[i];} for(int i=1;i<=number;i++){ for(int j=times;j>=1;j--) {if(timess[i]<=j) {backpack_dp[i][j]=max(backpack_dp[i-1][j],backpack_dp[i-1][j-timess[i]]+scores[i]);} else {backpack_dp[i][j]=backpack_dp[i-1][j];}}} cout<<backpack_dp[number][times]; }