poj3616(LIS簡單變式)

2022-08-21 19:54:13 字數 515 閱讀 7330

思路:我的第一反應是揹包,因為每個interval要麼選擇要麼不選,後來發現狀態方程很難寫出來。後來想一想發現就是lis的簡單變式。先按照starting hours給資料排序,那麼選擇的順序也就是排序後的順序,用dp[i]表示以第i個interval結尾能獲得最多的milk,狀態轉移方程就是dp[i]=max(dp[i],dp[j]+a[i].c)(a[j].e+r<=a[i].s,j詳見**:

1 #include2 #include3

using

namespace

std;45

struct

nodea[1005];8

9bool

cmp(node x,node y)

12int n,m,r,res,dp[1005

];13

14int

main()

26 printf("

%d\n

",res);

27return0;

28 }

poj3616 解題報告

poj 3616 milking time 題目大意,farmer john 要給女主牛 擠奶了。擠奶時間 n 1 n 1,000,000 hours,注意bessie進了一間黑心企業,每次擠奶休息完r 1 r n hours後,又可以擠。然後farmer john 有m個時間段,開始時間s,結束時...

動態規劃 POJ3616(dp入門題)

name poj3616 dp入門 actor ht time 2015年10月13日 error reporte 1.好好想清楚dp思路.要先會寫出明確的dp式子,再理清楚各種條件 include include include include include include include de...

LIS最大上公升子列 poj2533

題目大意 最大上公升子列 lis最大上公升子列 樸素演算法 o n n 子問題 每次找到乙個從前面到以i位置為結束的上公升子列,而i位置要往前面找乙個最大的上公升子列dp j 進而把問題規模縮小到j 狀態 dp i 以i位置元素為結束的上公升子列的長度 轉移方程 dp i max dp i dp j...