背景:给定N个活动,以及他们的开始时间和结束时间。
- 求最大兼容的活动个数或者(穿过所有的区间,需要的直线条数)
- 活动带权重,求收益最大
- 按照最早结束时间排序
- dp[i] 以第 i 个活动作为结尾的最大收益
- 转移方程:dp[i]= max(dp[i],dp[j]+g[i].v)
- j是能放在第i个活动前面的活动。
- 例题 poj Milking Time AC代码
- 安排所有的活动最少需要几个教室
- 活动按照最早开始时间进行排序
- 建立优先队列(小顶堆),关键字是该教室里目前安排的活动的最晚结束时间
- 将活动与优先队列的堆顶元素进行比较,如果活动的开始时间小于堆顶元素记录的结束时间,新开一个教室。
- 如果活动的开始时间大于堆顶元素记录的结束时间,将该活动安排在该教室,更新该教室里活动的最晚结束时间。
- 例题:poj 3190 AC代码
活动安排
原文:https://www.cnblogs.com/cyj1258/p/12147129.html