10 pts求条
  • 板块P1417 烹调方案
  • 楼主dendky
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/12 21:09
  • 上次更新2025/1/13 10:46:50
查看原帖
10 pts求条
1365127
dendky楼主2025/1/12 21:09
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
    ll a, b, c;
}m[100005];
ll dp[100005];
ll t, ans, n;
bool cmp (node a, node b){
    return a.c*b.b<b.c*a.b;
}
int main() {
    cin>>t>>n;
    for (ll i=1; i<=n; i++) cin>>m[i].a;
    for (ll i=1; i<=n; i++) cin>>m[i].b;
    for (ll i=1; i<=n; i++) cin>>m[i].c;
    sort (m+1, m+1+n, cmp);
    for (ll i=1; i<=n; i++){
        for (ll j=t; j-m[i].c>=0; j--){
            dp[j]=max (dp[j], dp[j-m[i].c]+m[i].a-j*m[i].b);
        }
    }
    sort (dp+1, dp+1+n);
    cout<<dp[n];
    return 0;
}
2025/1/12 21:09
加载中...