最大线段覆盖问题

最大线段覆盖问题

给你一些线段和一个区间,找出一种选择方法,使得区间被覆盖的长度最大,且线段之间互不相交(或者端点处可以相交)。

千万不要用贪心!

这是背包DP问题,设状态f[i](如果只有一个区间),表示[1,i]的区间能被覆盖的长度的最大值,方程:

f [ i ] = m a x ( f [ i ] , f [ S e g m e n t [ j ] . l 1 ] + S e g m e n t [ j ] . w ) ( S e g m e n t [ j ] . r <= i )

一个区间一维,两个区间两维……

背包动规:以背包为状态,枚举每个物品;反过来也行。具体看题目。

例题:

NKOJ1066 饥饿的奶牛

NKOJ2915 出租

猜你喜欢

转载自blog.csdn.net/arliastark/article/details/80719981