萌新刚学dp,不知道为啥这么写dp数组里面全都是0,有大佬可以指导一下吗
查看原帖
萌新刚学dp,不知道为啥这么写dp数组里面全都是0,有大佬可以指导一下吗
123168
王宏宇11楼主2021/12/13 20:09
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int dp[55][55][55];
int w[55];//质量 
int v[55];//体积 
int h[55];//卡路里 
int main()
{int n,vmax,wmax;
scanf("%d%d",&vmax,&wmax);
scanf("%d",&n);
for(register int i=1;i<=n;i++)
   scanf("%d%d%d",&v[i],&w[i],&h[i]);
int maxx=0;
for(register int i=1;i<=n;i++)
   for(register int j=0;j<=vmax;j++)
       for(register int k=0;k<=wmax;k++)
	      {if(j<v[i]||k<w[i]) dp[i][j][k]=dp[i-1][j][k];
	       else
	         {dp[i][j][k]=max(dp[i-1][j][k],dp[i-1][j-v[i]][k-w[i]]+h[i]);
			 }
	      }
/*for(register int i=1;i<=n;i++)
   {for(register int j=0;j<=vmax;j++)
      {for(register int k=0;k<=wmax;k++)
          printf("%d ",dp[i][j][k]);
        cout<<endl;
	   } 
	cout<<endl;
   }
*/
printf("%d",dp[n][vmax][wmax]);
return 0;
}
2021/12/13 20:09
加载中...