zoukankan      html  css  js  c++  java
  • CF526C Om Nom and Candies(思维)

    题意:

    可爱的小怪物Om Nom非常喜欢糖果。有一天,他发现自己处在一个相当棘手的境地,需要他多想一点,才能最享受糖果。如果您在他的位置上,您会成功完成相同的任务吗?


    有一天,当他去找朋友埃文(Evan)时,Om Nom在家中找不到他,但他发现了两个带糖果的袋子。第一个装满蓝色糖果,第二个装满红色糖果。 Om Nom知道每个红色糖果的重量为Wr克,每个蓝色糖果的重量为Wb克。吃一个红色的糖果会给Om Nom Hr带来欢乐,而吃一个蓝色的糖果会给Om Nom Hb带来欢乐。

    糖果是世界上最重要的事情,但另一方面,暴饮暴食也不是一件好事。 Om Nom知道如果他吃的糖超过C克,他就会生病。欧姆·诺姆(Om Nom)认为留下糖果剩菜不适当,因此他只能吃整个糖果。 Om Nom是一位出色的数学家,他迅速确定了应该吃多少种糖果才能获得最大数量的喜悦单位。你能重复他的成就吗?您可以假设每个袋子包含更多Om Nom可以吃的糖果。

    输入项
    单行包含五个整数C,Hr,Hb,Wr,Wb(1≤C,Hr,Hb,Wr,Wb≤109)。

    输出量
    打印一个整数-Om Nom可以获取的最大喜悦单位数。

    题解:

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    typedef long long ll;
    ll c,hr,hb,wr,wb;
    ll check (ll x) {
        if (x*wr>c) return 0;
        ll tt=x*hr+(c-x*wr)/wb*hb;
        return tt;
    }
    ll check1 (ll x) {
        if (x*wb>c) return 0;
        ll tt=x*hb+(c-x*wb)/wr*hr;
        return tt;
    }
    int main () {
        cin>>c>>hr>>hb>>wr>>wb;
        ll l=0;
        ll r=c/wr;
        ll ans=0;
        //printf("%lld %lld
    ",l,r);
        for (ll i=0;i<=1e5;i++) {
            ans=max(ans,check(i));
            ans=max(ans,check1(i));
        }
        printf("%lld
    ",ans);
    }
  • 相关阅读:
    redis-单线程为什么快
    redis-数据结构
    http-状态码
    事件绑定完整版2016/4/21
    焦点事件2016、4、21
    ++
    Bom2016/4/21
    添加以及删除className
    getByClassName2016/4/21
    动态添加
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/13634616.html
Copyright © 2011-2022 走看看