为什么我会死循环???
查看原帖
为什么我会死循环???
1029100
hhb123456楼主2023/9/27 22:05
#include<bits/stdc++.h>
using namespace std;
int dp[40005],cnt,v[100005],w[100005];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1,a,b,c;i<=n;i++){
		cin>>a>>b>>c;
		int s=1;
		while(s>=c){
			w[++cnt]=a*s;
			v[cnt]=b*s;
			c-=s;
			s*=2;
		}
		if(c>0){
			w[++cnt]=a*c;
			v[cnt]=b*c;
		}
	}
	
	for(int i=1;i<=cnt;i++)
		for(int j=m;j>=v[i];j--)
			dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
	cout<<dp[m];
	return 0;
}

2023/9/27 22:05
加载中...