思路:我的第一反應是揹包,因為每個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 #include3using
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...