警示后人
查看原帖
警示后人
1259620
hhj123_楼主2024/3/28 02:02
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100100;
long long int dp[N], w[N], l[N], u[N];
int main() {

	int n,m; cin >> n>>m;
	for (int i = 1; i <= n; i++) {
		cin >> l[i] >> w[i] >> u[i];
	}

	for (int i = 1; i <= n; i++) 
		for(int j=m;j>=0;j--){
        //不能和背包的板子一样,因为小于容量的时候也会加失败的那部分经验。//
			if (j >= u[i])	
 dp[j] = max(dp[j - u[i]] + w[i], dp[j]+l[i]);
			else dp[j] = dp[j] + l[i];
		}
		cout << dp[m] << endl;
		return 0;
		

}
2024/3/28 02:02
加载中...