要做贪心,需要分布解决,得到每一步骤中的最优解,在这其中往往要对问题进行一定的预处理,通常是排序(如性价比之类),或者是数据的简化(如moving tables把走廊相对的两间屋看成一个整体,作为一个数据),预处理之后进入到整个问题的核心部分贪心策略,贪心策略有的时候是实现问题的转化,有时候不用转化而是反复遍历。
现在做题还不是很多,往往没有一种很明显的贪心思想出来,思路还是像解数学题一样的,在慢慢求解的过程中,一步一步的来实现,其实就是符合了贪心思想。通过贪心来求往往是最优的办法,这也就会造成,像往常一样直白简单的想法在实现起来数据处理会很大,这样会造成超时的情况。我们其实可以通过逆向思维,通过结果来发现规律,由结果倒推性质,从而就有可能把思路转变,不是直白的从题目描述顺下来写代码,这样是一个得到贪心的好办法,在实际做题无思路时,总有效果。
贪心算法往往配合STL内容来实现,常用有:Vector,Set;结构体,sort排序函数和优先队列也是常用的。