![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
斜率dp
andyc_03
这个作者很懒,什么都没留下…
展开
-
【poj1180】任务安排2
首先我们考虑正常dp的方式 设f[i]表示前i个任务分批执行的最小费用,就可以得到转移方程 f[i]=min(f[j]+sumt[i]*(sumc[i]-sumc[j])+S*(sumc[n]-sumc[j])) 这里后半部分的S用到了“费用提前计算”的思想,将每次开机的时间提前加上了 这样做的时间复杂度为 整理得 代码 #include<bits/stdc++.h> using namespace std; const int maxn=3e5+10; long l..原创 2020-08-04 18:18:04 · 163 阅读 · 0 评论 -
【斜率优化dp】P3628 [APIO2010]特别行动队
首先定义f[i]为前i个士兵组成的最大战斗力 直接计算的方式 for(int i=1;i<=n;++i) for(int j=0;j<i;++j) f[i]=max(f[i],f[j]+calc(c[i]-c[j])); 其中calc为计算二次函数的值 c[i]为预处理的前缀和 这样只能得到50分,我们还需要继续进行斜率优化 设j的方案比k更优,有 整理得 代码 #include<bits/stdc++.h...原创 2020-08-04 17:02:06 · 127 阅读 · 0 评论