有 n 道题目要抄,耗时a[i] 。用不超过 t分钟抄这个,每道题要么不写,要么抄完,。
下标连续的一些空题称为一个空题段,它的长度就是所包含的题目数。
现在,小 Y 想知道他在这 t 分钟内写哪些题,才能够尽量减轻马老师的怒火( 连续空题段的最大值 )
#include <iostream> #include <cstring> using namespace std; const int N=2e5+3; #define int long long int a[N],f[N],n,m; int hh,tt,q[N]; int chk(int md){ int i; for(i=0;i<=n;i++) f[i]=1e9; f[0]=0; hh=tt=0; for(i=1;i<=n;i++){ while(hh<=tt&&q[hh]<i-md) hh++; f[i]=a[i]+f[q[hh]]; while(hh<=tt&&f[q[tt]]>f[i]) tt--; q[++tt]=i; } return f[n]<=m; } signed main(){ int i,l,r,ans; cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; l=1,r=n; a[++n]=0; while(l<=r){ int md=(l+r)/2; if(chk(md)==0) ans=md,l=md+1; else r=md-1; } cout<<ans; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇