求助!
  • 板块学术版
  • 楼主WAI_kycm
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/2/9 20:47
  • 上次更新2023/10/24 01:17:46
查看原帖
求助!
544458
WAI_kycm楼主2023/2/9 20:47

请问这份多重背包的写法有什么问题吗? 评测过不了。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 1e5 + 5;
int n, V;
int dp[maxn], a[maxn], c[maxn], x[maxn];
void Solve(){
	cin>>n>>V;
	for(int i = 1; i <= n; ++i) cin>>a[i]>>c[i]>>x[i];
	for(int i = 1; i <= n; ++i){
		for(int k = x[i]; k >= 1; --k){
			for(int j = V; j >= k * a[i]; --j){
				dp[j] = max(dp[j], dp[j - k * a[i]] + k * c[i]);
			}
		}
	}
	cout<<dp[V]<<endl;
}
signed main(){
	Solve();
	return 0;
}
2023/2/9 20:47
加载中...