社区讨论
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 条回复,欢迎继续交流。
正在加载回复...