给你某些颜色的颜料和灰色颜料需要的体积,其中任意三种Xml其他颜色可以合成Xml灰色颜料
每组颜料包含除灰色外的其他每种颜料50ml,问最少要几组颜料才能配出所需的颜料
暴搜,首先计算配出其他颜色颜料最少需要多少组,然后依次加1,判断是否能配出灰色
判断是否能配出灰色时,计算其他每种颜色的余量,排序,依次将最多的三种颜色减1
一开始直接减了余量第三多的数目,这种策略在碰到一些特殊数据时就失效了
例如 5 200 200 200 200 200 333
减完一次后 剩下 200 200 0 0 0 233,两种200的颜料不能配了,但是如果每次减50,结果依次为:
200 200 200 200 200 333
200 200 150 150 150 283
150 150 150 150 100 233
150 100 100 100 100 183
100 100 100 50 50 133
50 50 50 50 50 83
50 50 0 0 0 33
这种情况下可以配300ml灰色
每次减的越少,每种颜料的利用率就越高,因为必须三种颜色的颜料同时有Xml时才能配色,只有一种或者两种颜料大于0时不能配色,如果这一种或者两种颜色的体积比较大时,明显就浪费了,所以贪心策略每次将体积最大的三种颜料体积减1
代码: