算法-买棉花

版权声明:博客版权所有,转载注明出处。 https://blog.csdn.net/qq_33083551/article/details/86081773

刚遇到个很有意思的硬核算法题,一起探讨下。

题目:

从前有个国王,国家非常缺棉花,邻国刚好盛产棉花,于是国王派上全国所有的男子、妇女、少年、儿童、猴子一起去邻国采集棉花。

邻国非常欢迎他们去采棉花,于是给了他们每个人一个箩筐,每人可以自由采棉花。

但是邻国对棉花的定价很死板,只有以下几个收费套餐,如下:

15KG   40.5元

7KG    23.4元

3KG    12元

1KG    7.5元

0.5KG  4.05元

0.1KG   1.35元

0.05KG  0.75元

0.03KG  0.6元

0.02KG  0.45元

0KG    0.45元

 

理想情况下,国王命令每个人都采集15KG,即可得到性价比最高的棉花。但是事实并非如此,因为人员构造复杂,每个人的采集量参差不齐,0-500KG不等,小孩和猴子普遍只能采集0-1KG棉花。

 

问题:国王派出x个人,共采集了y公斤棉花,并且知道每个人的采集量,求一个最优的结算方式。

 

问题和条件补充

  1. 小孩和猴子的数量远远大于大人,所以不会出现平均数大于15KG的情况
  2. 每个人的极限是500KG
  3. 每个箩筐只能按照比量高或相等的套餐结算。比如某个箩筐装了6KG,可以用15KG的价格结算,也能用7KG的价格结算,不过当然是以7KG的结算划算。比如某个箩筐装了15KG,那只能按照15KG结算。
  4. 所有人都可以相互匀棉花。
      • 比如一共只有5人,分别采集了 75KG、0KG、0KG、0KG、0KG。那么可以让5人分别结算15KG,这样达到成本最低,因为15KG的每KG单价最低。
      • 比如一共只有2个人分别采集了14KG、2KG。 那么可以匀为15KG和1KG结算达到最低成本。

 

5、每个箩筐都要结算,如果总结算量和小于真实棉花量,即少结算,查处后按照每公斤1000元罚款。

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第一眼看过去,动态规划肯定跑不了,写写试试。

猜你喜欢

转载自blog.csdn.net/qq_33083551/article/details/86081773