dp20分求助
查看原帖
dp20分求助
684890
Rhss楼主2022/8/3 03:20
#include <bits/stdc++.h>
#define nx 1000
using namespace std;
int t,m;
int t1[nx];
int w1[nx];
int r = 0;
//dp[i][j]表示前i件物品放入容量为j的背包所需要
int dp[nx][nx];
int main(){
	cin>>t>>m;
	for(int i = 1;i<=m;++i){
		cin>>t1[i];
		cin>>w1[i];
	}
	//即把前0件物品放入任意背包所得价值皆为0
	for(int i = 0;i<=t;++i){
		dp[0][i]=0;
	}
	for(int i = 1;i<=m;++i){
		for(int j = t1[i];j<=t;++j){
			dp[i][j]=max(dp[i-1][j],dp[i-1][j-t1[i]]+w1[i]);
			r=max(r,dp[i][j]);
		}
	}
	cout<<r;
	return 0;
}

2022/8/3 03:20
加载中...