HDOJ HDU 1085 Holding Bin-Laden Captive!

本文解析了HDOJ1085 Holding Bin-Laden Captive!的解题思路,通过分析不同面值硬币的数量,确定能够组成的连续最小面值。文章提供了一种简单直接的方法来解决这一问题,并附带了实现该算法的C++代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDOJ 1085 Holding Bin-Laden Captive!

题目

点此查看 HDOJ 1085 Holding Bin-Laden Captive!

分类

找规律
这题其实思路很简单 但是很有迷惑性 还是发一下

题意

解决拉登得数学问题
分别给一些面值为 1,2,5 的硬币  
求给出硬币能组成得连续最小面值
例如

面值数量
11
21
53
总面值面值 1 数量面值 2 数量面值 5 数量
1100
2020
3120
4

无法组成 4

题解

差点看成背包问题
其实有很简单的思路
如果 1 有 0 个
那么 1 就不能组成
如果所有 1 和 2 的数量 不能组成 4以上的数 则 只能到为 1 和 2 组成的最大数 (因为如果 能组4 就意味着 可以从 5 开始了)
否则 为 所有 硬币组成的数

代码

#include <iostream>

using namespace std;

int main()
{
    int o,t,f,min;
    while(cin >> o >> t >> f &&(o || t || f))
    {
        if(o == 0)
        {
            cout << 1 << endl;
            continue;
        }
        if(o + 2*t < 4)
            min = o + 2*t;
        else min = o + 2*t + 5*f;
        min++;
        cout << min << endl;    
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值