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

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; //空题段长度
}
相关推荐
踢球的打工仔几秒前
前端html(2)
前端·算法·html
CoderYanger7 分钟前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger14 分钟前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
TL滕30 分钟前
从0开始学算法——第八天(堆排序)
笔记·学习·算法·排序算法
Ayanami_Reii31 分钟前
进阶数据结构-AC自动机
数据结构·算法·动态规划·字符串·ac自动机
报错小能手33 分钟前
数据结构 AVL二叉平衡树
数据结构·算法
l1t35 分钟前
利用Duckdb求解Advent of Code 2025第5题 自助餐厅
数据库·sql·mysql·算法·oracle·duckdb·advent of code
List<String> error_P1 小时前
C语言枚举类型
算法·枚举·枚举类型
liu****1 小时前
20.预处理详解
c语言·开发语言·数据结构·c++·算法
努力学算法的蒟蒻1 小时前
day26(12.6)——leetcode面试经典150
算法·leetcode·面试