码迷,mamicode.com
首页 > 其他好文 > 详细

P1417 烹调方案

时间:2020-04-25 17:28:15      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:with   const   ios   bsp   style   none   为什么   out   signed   

链接

排序 + 01背包

为什么要排序??01背包的价值是固定的,本题还与时间有关,所以应该找一个价值最大的方案

技术图片
#include <bits/stdc++.h>

using namespace std;
#define int long long
const int maxn = 1e5 + 10;
int v,n;

struct node{
    int a,b,c;
}e[55];

int dp[maxn];
bool cmp(node d,node f){
    return f.b * d.c < d.b * f.c;
}
signed main() {
    //freopen("in","r",stdin);
    ios::sync_with_stdio(0);
    cin >> v >> n;
    for (int i = 1; i <= n; i++)
        cin >> e[i].a;
    for (int i = 1; i <= n; i++)
        cin >> e[i].b;
    for (int i = 1; i <= n; i++)
        cin >> e[i].c;
    sort(e + 1,e + 1 + n,cmp);
    int ans = 0;
    for(int i = 1;i <= n; i++){
        for(int j = v; j >= e[i].c; j--){
          dp[j] = max(dp[j],dp[j - e[i].c] + e[i].a - j * e[i].b);
          ans = max(ans,dp[j]);
        }
    }
    cout << ans << endl;
    //cout << dp[n][v] << endl;不一样
    return 0;
}
View Code

 

P1417 烹调方案

标签:with   const   ios   bsp   style   none   为什么   out   signed   

原文地址:https://www.cnblogs.com/xcfxcf/p/12773551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!