当前位置:   article > 正文

$dp$模板

$dp主题

数位dp

咕咕咕

单调队列优化

  • 总结了一个模板,其中lst表示还未加入的决策点的最左端的位置(以维护不上升为例),L(i),R(i)只是与i(这里的i指的是外层的维度,并不一定是i)有关的左界和右界,calc(j)是只与j有关的计算函数,w(i)是只与i有关的计算函数

  • 注意 f[i]转移时极易忘记判断队列是否为空

  1. for(int i = 1;i <= n; ++i) {
  2. while(lst < L(i)) ++lst
  3. for(;lst <= R(i); ++lst) {
  4. while(l <= r && calc(q[r]) < calc(lst)) --r;
  5. q[++r] = lst;
  6. }
  7. while(l <= r && q[l] < L(i)) ++l;
  8. if(l <= r) f[i] = calc(q[l])+w(i);//再次注意 此处if(l <= r)判断队是否为空极易忘!!!!!!
  9. }

斜率优化

咕咕咕

转载于:https://www.cnblogs.com/mzg1805/p/11546898.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/50807
推荐阅读
相关标签
  

闽ICP备14008679号