喝可乐

喝可乐

https://ac.nowcoder.com/acm/contest/11210/E

思路
枚举第一次选择的所有可能的情况,当第一次的情况确定后,就能获得这种情况能喝到的饮料数,取最大值即可
代码

#include<bits/stdc++.h>
using namespace std;
int t, n, a, b;
inline int pan(int x, int y)
{
    int ans = n;
    //  b, a
    int u, v;
    while (x >= a || y >= b) {
        u = x / a;//换b
        v = y / b;//换a
        ans += u + v;
        x = x % a + v;
        y = y % b + u;
    }
    return ans;
}
void solve()
{
    cin >> n >> a >> b;
    int ans = 0;
    for (int i = 0; i <= n; ++i) {//第一次选择的情况
        //取最大值
        ans = max(ans, pan(i, n - i));
    }
    cout << ans << endl;
}
int main()
{

    cin >> t;
    while (t--) solve();
    return 0;
}
全部评论
因为这题的两种可乐瓶盖可以互相兑换,无法确定最佳的贪心策略,就只能暴力枚举所有情况,得出最大值
点赞 回复 分享
发布于 2021-04-19 15:03
为什么不能用贪心啊,直接全部都是买花费比较小的那个,然后剩下的钱买花费比较大的
点赞 回复 分享
发布于 2021-04-19 11:31

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务