HDOJ 1085 Holding Bin-Laden Captive!
题目
分类
找规律
这题其实思路很简单 但是很有迷惑性 还是发一下
题意
解决拉登得数学问题
分别给一些面值为 1,2,5 的硬币
求给出硬币能组成得连续最小面值
例如
面值 数量 1 1 2 1 5 3
总面值 面值 1 数量 面值 2 数量 面值 5 数量 1 1 0 0 2 0 2 0 3 1 2 0 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;
}