01背包只能过60 求救哪错了

#include<iostream>
#include<vector>
using namespace std;
struct thing{
	int val;
	int vol;
};
int main(){
	int v,n;
	cin>>v>>n;
	int i,j;
	thing temp;
	vector<thing> t;  
	for(i=0;i<n;i++){
		cin>>temp.vol>>temp.val;
		t.push_back(temp);
	}
	int dp[n+1][v+1];
	for(i=0;i<=n;i++)
	for(j=0;j<=v;j++){
		dp[i][0]=0;}
	//先种类再体积 
	for(i=1;i<=n;i++){
		for(j=1;j<=v;j++){
			if(t[i].vol>j){
				dp[i][j]=dp[i-1][j];
			}
			else dp[i][j]=max(dp[i-1][j-t[i].vol]+t[i].val,dp[i-1][j]);
		} 
	}
	cout<<dp[n][v]<<endl;
} 


#笔试题目##华为#
全部评论
i-1
1
送花
回复 分享
发布于 2020-09-15 11:35

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务