动态规划(算法竞赛、蓝桥杯)--单调队列优化绿色通道

1、B站视频链接:E45 单调队列优化DP 绿色通道_哔哩哔哩_bilibili

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
const int N=5e4+10;
int n,tim,w[N],f[N],q[N];

bool check(int m){
  int h=1,t=0;
  for(int i=1; i<=n; i++){
    while(h<=t && f[q[t]]>=f[i-1]) t--;
    q[++t]=i-1;
    if(q[h]<i-m) h++;
    f[i]=f[q[h]]+w[i];
    if(i>n-m && f[i]<=tim) return 1;//r指针左移 
  }
  return 0;
}
int main(){
  cin>>n>>tim;
  for(int i=1;i<=n;i++) cin>>w[i];
  int l=-1,r=n+1;
  while(l+1<r){
    int mid=l+r>>1;
    if(check(mid)) r=mid;
    else l=mid;
  }
  cout<<r-1; //空题段长度
}
相关推荐
小尧嵌入式4 分钟前
Linux的shell命令
linux·运维·服务器·数据库·c++·windows·算法
Jeremy爱编码7 分钟前
leetcode热题路径总和 III
算法·leetcode·职场和发展
CoovallyAIHub10 分钟前
滑雪季又来了!如何用计算机视觉帮雪场解决最头疼的问题
深度学习·算法·计算机视觉
智算菩萨22 分钟前
音乐生成模型综述:从符号作曲到音频域大模型、评测体系与产业化趋势
人工智能·深度学习·算法
晚风(●•σ )24 分钟前
C++语言程序设计——12 排序算法-桶排序
c++·算法·排序算法
kgduu24 分钟前
Gin源码解析
算法·gin
小尧嵌入式41 分钟前
C++11线程库的使用(上)
c语言·开发语言·c++·qt·算法
蓝色汪洋1 小时前
luogu填坑
开发语言·c++·算法
小年糕是糕手1 小时前
【C++同步练习】类和对象(三)
开发语言·jvm·c++·程序人生·考研·算法·改行学it
Learner__Q1 小时前
每天五分钟:leetcode动态规划-递归与递推_day2
算法·深度优先