题目描述:
N个区间,[x,y]区间可以提供y-x+1的牧草,可以选择任意区间,但是选择的区间不可以有重复的部分 → [0,1]和[1,2]这中不可以同时选
求:
奶牛怎么选择吃的区间,可以让吃的总数最多
思路:
乍一看有点像做工程问题的几道贪心题(后续会写一篇专题区分一下),但需要注意的是工程问题的贪心题求的是做工程数目,本题求的是区间长度总和最长。又最值问题一般考虑贪心、dp,贪心初步判断无思路,考虑dp。
可以将所有区间类似放在一个坐标轴上,于是本题成为坐标轴上区间选点。
考虑一个简单的状态, f i f_i fi表示到达 i i i位置时最多可以吃到的草数目,它由两种大类状态转移过来:
- 不选择以 i i i为结尾的区间;
- 选择以 i i i为结尾的区间(数目不定);
于是状态转移方程为
f i = { f i − 1 f j −