hdoj2069 Coin Change

这篇博客探讨了如何利用生成函数解决hdoj2069 Coin Change问题,其中每个硬币组合的总数不超过100枚。通过建立状态矩阵A[i][j],表示用j枚硬币凑成i元的方案数,利用多项式乘法进行状态转移,最终对A[sum][i]求和得到所有可能的解决方案数量。
摘要由CSDN通过智能技术生成

依然是生成函数,但是加了一个限制条件:每种方案的硬币总数不能超过100枚


解决的办法是维护一个状态矩阵:A[i][j];[i]的意义是凑成i元,[j]的意义是用j枚硬币来凑;A[i][j]的意义是用j枚硬币凑成i元的解决方案数目

于是多项式乘法中的两项相乘就成了状态转移的过程,例如(1+a1*x+a2*x^2+a3*x^3+...)(1+x^5+...),目前凑成3元有a3种方案,则:


A[3][0] + A[3][1] + A[3][2] + A[3][3] = a3


若a3*x^3与x^5相乘,意味着引进1个5元硬币,于是:

A[8][1]增加了A[3][0]种

A[8][2]增加了A[3][1]种

A[8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值