这是蒟蒻的第4篇题解
这是一道很好的dp背包模板题,很适合刚学dp的人来做
代码区:
#include<bits/stdc++.h>
using namespace std;
const int N=30000;//宏定义
int v[1001],w[1001],n,m,dp[N];//v是空间,w是价值,dp用来记录
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
cin>>v[i]>>w[i];
}//输入
for(int i=0;i<n;i++) {
for(int j=m;j>=v[i];j--){
if(dp[j-v[i]]+w[i]>dp[j])//如果现在方案的价值更高,那么就取现在的价值,减去空间
dp[j]=dp[j-v[i]]+w[i];
}//经典dp公式
}
printf("%d\n",dp[m]);//输出
return 0;//完美撒花
}
码风很丑,勿喷,但欢迎点赞━(`∀´)ノ亻!
这个代码saber不好用
我测试过ya~,是没有问题的