算法分析与设计——动态规划01背包C++

注:贪心法求01背包得到的不是最优解 所以还是使用动态规划算法
#include <iostream>

using namespace std;
int N,V,dp[1001],c[10001],w[100001];
int main()
{
    
    
	int w[5]={
    
    0,2,3,4,5};
	int v[5]={
    
    0,3,4,5,6};
	int bagV=8;
	int dp[5][9]={
    
    {
    
    0}};
	for(int i=1;i<=4;i++){
    
    
		for(int j=1;j<=bagV;j++){
    
    
			if(j<w[i])
				dp[i][j]=dp[i-1][j];
			else{
    
    
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
				 
			}
			
		}
	}
	
	for(int i=0;i<5;i++)
	{
    
    
		for(int j=0;j<9;j++){
    
    
			cout<<dp[i][j]<<" ";
		}
		cout<<endl;
	}
	
	return 0;
	
	
    
}

猜你喜欢

转载自blog.csdn.net/weixin_44044395/article/details/112147167