1、B站视频链接:E45 单调队列优化DP 绿色通道_哔哩哔哩_bilibili
#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; //空题段长度
}