文章
82
粉丝
344
获赞
28
访问
696.0k
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
/*
f[i][j] 表示只看前i个物品,总体积是j的情况下,总价值最大是多少
f[i][j]:
1 不选第i个物品 : f[i][j]=f[i-1][j] ;
2 选第i个物品 : f[i][j]=f[i-1][j-v[i]]+w[i]
f[0][0]=0;
*/
int f[105][1005];
int w[105];
int v[105];
int t,m;
int main(){
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>v[i]>>w[i];
}
for(int i=1;i<=m;i++){
for(int j=1;j<=t;j++){
f[i][j]=f[i-1][j];//可能背包不够装当前物品
if(j>=v[i]){
f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]);
}
}
...
登录后发布评论