随笔分类 - 动态规划:线性
【洛谷P2889】Milking Time
摘要:很容易想到以结束时间加上R从小到大排序 之后怎样呢? 我们按层考虑,f[i]表示前i个时间段嫩得到的最大价值 每次枚举其之前的状态,如果其ed<当前i的st,那么取max即可 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4
阅读全文
【洛谷P3143】Diamond Collector
摘要:算是一道dp 首先,排序好每一个架子上都是一段区间,然后只需要统计每个点向左向右最长延伸的区间。 所以我们预处理出每个点以左、以右最大能延伸的长度(最多能选几个差值不超过k的) 然后枚举每个点作为断点,sum取max即可 1 #include<cstdio> 2 #include<cstring>
阅读全文
【洛谷P1417】烹调方案
摘要:如果没有 b [ i ] 就是01背包 加上 b [ i ] 这个属性,我们可以考虑:对于1,2两个, 先完成1的价值p=a[1]-b[1]*c[1]+a[2]-b[2]*(c[1]+c[2]) 先完成2的价值q=a[2]-b[2]*c[2]+a[1]-b[1]*(c[1]+c[2]) p>q 要求
阅读全文
【洛谷P1282】多米诺骨牌
摘要:01背包,但至少取一种 f [ j ] 表示当点数之差为 j 时的最小反转次数,0<=j<=m (点数最大值之和) 我们可以不考虑每一块骨牌点差,仅考虑每次减去上面的(和翻转到上面的)数所得到的 j 则:f [ j ] = min ( f [ j - a [ i ] ] , f [ j - b [
阅读全文
【洛谷1280】尼克的任务
摘要:我们发现这道题是有后效性的……前面的决策会对后面的产生影响…… 所以我们可以反向考虑 f [ i ] 表示第i分钟至第n分钟的最大空闲时间 理论上应该排个序,不过默认有序了…… 转移方程:如果该时间有任务开始,f [ i ] = max( f [ i ],f [ i+e [ i ] ]) 如果没有任
阅读全文
浙公网安备 33010602011771号