POJ 3040 Allowance——菜鸟的ACM之旅

博客主要介绍了POJ 3040 Allowance问题,内容涉及如何利用贪心算法解决农场主FJ给Bessie奶牛分配不同面额硬币作为津贴的问题。博主分享了解题思路和具体代码实现,并欢迎读者指正代码中的错误。
摘要由CSDN通过智能技术生成

POJ 3040 Allowance

题目大意

作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴。FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币、5美分硬币、10美分硬币和50美分硬币。使用这些硬币,FJ每周至少给Bessie C(1 <= C <=100000000)美分。请你计算他最多能给Bessie几周

思路

贪心,先把值大于等于c的金币提取出来,直接用。然后再用一些尽可能大的金币逼近c,但不能大于c,然后从最小的金币开始,填满这些金币和c的差值(可以超出),思路还比较好理解。代码细节我注释了

代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct ST
{
   
    int v;
    int  cnt;
    //long long sum;
};
ST a[39];
int use[39];
int cmp(ST x, ST y)
{
   
    return x.v > y.v;
}
int main()
{
   
    int n, c;
    cin >> n >> c;
    for(int i = 0; i < n; i++)
        cin 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值