类似杨辉三角问题——第n杯水

问题:

有一座金字塔,从上到下,第一层有一个杯子、第二层有两个杯子,依次类推。对杯子进行编号,有如下的形状:

   1
 2   3
4   5   6

每个杯子的容量为C升,从塔顶倒下L升水,当1号杯子满了之后,会等量溢出到2号和3号杯子。当2号和3号满了,2号溢出到4号和5号,3号溢出到5号和6号,注意5号接受来自两个杯子的水。依次类推。给定C和L,请问,第n杯里有多少水。

from @陈利人


分析:

此题没有想到好的方法,只想到模拟(或者算DP),

f[leveli, index] 表示第leveli层的第index个酒杯共收到的水的量。那么:

f[leveli, index] = ( f[leveli-1, index-1] - C ) / 2 + ( f[leveli-1, index] - C ) / 2 。

这里 f[leveli-1, index-1]  - C、  f[leveli-1, index] - C 不小于0, 否则相应项为0。


实现:使用hashMap做备忘录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值