贪心
(1)简单贪心
贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部优化(或较优)的策略,来使全局的结果达到最优(或较优)。
现给定所有种类月饼的库存量、总售价以及市场的最大需求量:假如有三种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。市场的最大需求量只有20万吨。求最大收益(精确到小数点后两位)。
思路:将所有的月饼按单价从高到低排序
从单价高的月饼开始枚举
①如果该种月饼(单价最高的月饼)的库存量不足以填补所有的需求量,则将该种所有的月饼全部卖出,这部分收益值为该种月饼的总售价。再拿单价第二高的月饼补上……
②如果该种月饼的库存量足够供应需求量,则最终的收益值为需求量乘以该种月饼的单价。
值得注意的是,月饼库存量和总售价可以是浮点数,用double型存储。总需求量也需要定义为浮点型,很多“答案错误”的代码都是错在这里。
(2)区间贪心
区间不相交问题:给出N个开区间(x,y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。例如对开区间(1,3)、(2,4)、(3,5)、(6,7)来说,可以选出最多三个区间(1,3)、(3,5)、(6,7),他们互相没有交集。
差不多是这个意思啦。看图看图看图
网友评论