dp-实现0-1背包


#include <iostream>

#include <stdio.h> 
#include <algorithm>
using namespace std;
const int maxn=100;
int main(int argc, char** argv) {
int n,V;
scanf("%d%d",&n,&V);
int w[maxn],c[maxn];
for(int i=1;i<=n;i++){
scanf("%d",&w[i]);

for(int i=1;i<=n;i++){
scanf("%d",&c[i]);
}
int dp[maxn][maxn];
//边界条件;
for(int i=1;i<=V;i++){
dp[0][i]=0;

//状态转移; 
for(int i=1;i<=n;i++){
for(int j=w[i];j<=V;j++){
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+c[i]);
}
}
printf("%d\n",dp[n][V]);
return 0;
}

相关文章:

  • 2021-09-09
  • 2022-12-23
  • 2021-10-27
  • 2021-11-13
猜你喜欢
  • 2022-01-20
  • 2021-04-16
  • 2021-06-25
  • 2022-12-23
  • 2022-01-23
  • 2021-10-31
相关资源
相似解决方案