0分求调
查看原帖
0分求调
1285033
liyoulin楼主2024/7/17 14:18

本地不RE

洛谷上RE

奉上代码

#include<bits/stdc++.h>
using namespace std;
struct bao{
	int v,w,m;
}b[100],l[100000];
int n,W,idx,dp[40001];
int main(){
	cin>>n>>W;
	for(int i=0;i<n;i++){
		cin>>b[i].v>>b[i].w>>b[i].m;
	}
	for(int i=0;i<n;i++){
		int c=1,m=b[i].m;
		while(b[i].m>c){
			m-=c;
			l[idx].v=c*b[i].v;
			l[idx].w=c*b[i].w;
			idx++;
			c*=2;
		}
		l[idx].v=m*b[i].v;
		l[idx].w=m*b[i].w;
		idx++;
	}
	for(int i=0;i<idx;i++){
		for(int j=W;j>=l[i].w;j--){
			dp[j]=max(dp[j],dp[j-l[i-1].w]+l[i-1].v);
		}
	}
	cout<<dp[W];
	return 0;
} 
2024/7/17 14:18
加载中...