社区讨论

30求调

P1417烹调方案参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m21sld3f
此快照首次捕获于
2024/10/09 19:34
去年
此快照最后确认于
2025/11/04 17:34
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
long long T;
long long n;
struct food{
	long long a;
	long long b;
	long long c;
	long long key;
}eat[60];
long long f[100005];
bool cmp(food a,food b){
	return a.key<b.key;
}
int main(){
	cin>>T>>n;
	for(long long i=1;i<=n;i++){
		cin>>eat[i].a;
	}
	for(long long i=1;i<=n;i++){
		cin>>eat[i].b;
	}
	for(long long i=1;i<=n;i++){
		cin>>eat[i].c;
	}
	for(long long i=1;i<=n;i++){
		eat[i].key=eat[i].b*eat[i].c;
	}
	
	//f[i][j]   前i件,时间不超过j的最大美味指数
	//f[i][j]=max(f[i-1][j],f[i-1][j-eat[i].c]+eat[i].a-j*eat[i].b);
	long long ans=0;
	sort(eat+1,eat+n+1,cmp);
	for(long long i=1;i<=n;i++){
		for(long long j=T;j>=0;j--){
			if(j-eat[i].c>=0){
				f[j]=max(f[j],f[j-eat[i].c]+eat[i].a-j*eat[i].b);
			}
			ans=max(ans,f[j]);
		}
	}
	for(int i=1;i<=n;i++){
		
	}
	cout<<ans;
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...