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

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;
} 


全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐