编程之美(六)饮料供货
在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件?N
No,是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然,还是有很多同事把拿饮料当做第二件事)。
管理水房的阿姨们每天都会准备很多的饮料给大家,为了提高服务质量,她们会统计大家对每种饮料的满意度。一段时间后,阿姨们已经有了大批的数据。某天早上,当实习生小飞第一个冲进水房并一次拿了五瓶酸奶、四瓶王老吉、三瓶鲜橙多时,阿姨们逮住了他,要他帮忙。
从阿姨们统计的数据中,小飞可以知道大家对每一种饮料的满意度。阿姨们还告诉小飞,S
STC(SSmartTeaCorp.)负责给研究院供应饮料,每天总量为VV。SSTC很神奇,他们提供的每种饮料之单个容量都是22的方幂,比如王老吉,都是23=823=8升的,可乐都是25=3225=32升的。当然S
STC的存货也是有限的,这会是每种饮料购买量的上限。统计数据中用饮料名字、容量、数量、满意度描述每一种饮料。
那么,小飞如何完成这个任务,求出保证最大满意度的购买量呢?
分析:动态规划
每种饮料由五个关键参数来描述S
Si,Vi,Ci,Hi,Bi (分别对应的是饮料名字、容量、可能的最大数量、满意度、实际购买量)来表示第ii种饮料(i=0,1,...,n−1
i=0,1,...,n−1)
那么饮料总容量为∑n−1i=0
∑i=0n−1(VVi∗Bi),总满意度为∑n−1i=
