BSOJ1515 无限硬币问题

洛谷博客食用更佳(^-^)V:传送门

Description

输入硬币的n种不同面值(各种面值的硬币个数不限)和m。
输出构成1到m元的最少硬币数。

Input

第一行两个数n(n<=200),m(m<=10000)
第二行n个面值

Output

共m行,每行为组成该值所需最少硬币数(若不能组成则输出-1)

Sample Input

3 4
1 2 3

Sample Output

1
1
1
2

我太菜了,又来水DP基础题QAQ

这是一道DP的water problem

是美妙的背包啊~


一:状态与定义

f[i]表示凑齐i元所需的最少硬币数。

二:状态转移

当我们并没有计算过当前的硬币数时,用(i-a[j])元时的硬币数+1(这个1就是减的那一个硬币值a[j])。

而当我们已有了一个当前最小硬币数时,则将其与上一阶段最小硬币数小比较,取min。

具体的公式如下:
f ( x ) = { f [ i − a [ j ] ] + 1 f [ i ] = = 0 m i n ( f [ i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值