c++ 贪心讲解大礼包

贪心是什么?

它其实类似一种思想 

就是总问题可以分成许多的子问题

子问题的最优解可以直接推出整个问题

它和动态规划有一定的不同之处 动态规划不能由子问题的最优解推出整个问题的最优解 所以你看都要有一个数组来记录一下嘛

 

 

贪心怎么用?

就是说我们把整个问题分成许多的子问题

然后对子问题求得局部最优解

 

几个简单的例子?

【例1】

n个人打水,每个人用的时间是t1, t2, t3… 现在有m水龙头,问所有人等待时间总和最小. 

解:很显然 这一道题我们就要让时间t更短的人先打水 这样子后面的人就可以少等一点时间 这就是一个贪心的思想

【例2】

给定数轴上的很多区间,求尽量多的区间,使得他们两两不相交.

解:这一题倒是比较值得品味一下的 假如这些区间是这个样子的

 

 这里有4条线段 我们按照右端点来排序

右端点最靠前的是1号线段 然后我们在剩下的线段里找满足要求(没有交集)的线段里右端点靠前的线段  这样子剩下的长度多 后面选的线段数也就会更多

(后续内容会持续更新)

posted @ 2019-10-05 16:50  DreamingBligo_Tido  阅读(341)  评论(0编辑  收藏  举报