BZOJ 4385 单调队列
来源:互联网 发布:猪八戒 知乎 编辑:程序博客网 时间:2024/06/01 22:22
思路:
对于每一个r 要找最小的符合条件的l最优 这时候就要找在这个区间中 d长度的和的最大值 用单调队列更新就好了
//By SiriusRen#include <cstdio>#include <algorithm>using namespace std;#define N 2000100long long sum[N],p,g[N];int n,d,w[N],head,tail,l,ans,que[N];signed main(){ scanf("%d%lld%d",&n,&p,&d); for(int i=1;i<=n;i++) scanf("%d",&w[i]),sum[i]=sum[i-1]+w[i]; for(int i=0;i<=n;i++){ if(i+d<=n)g[i]=sum[i+d]-sum[i]; else g[i]=sum[n]-sum[i]; } ans=d; for(int r=d;r<=n;r++){ while(head<tail&&g[que[tail-1]]<g[r-d]){ tail--; } que[tail++]=r-d; while(r-d>l&&sum[r]-g[que[head]]-sum[l]>p){ l++; if(que[head]<l)head++; } ans=max(ans,r-l); } printf("%d\n",ans);}
0 0
- BZOJ 4385 单调队列
- BZOJ 1047 单调队列
- BZOJ 2096 单调队列
- bzoj 2227 单调队列
- bzoj 1047 单调队列
- BZOJ 1342 单调队列
- BZOJ 1012 单调队列+二分
- BZOJ 2096: pilots 单调队列
- bzoj 1047(单调队列)
- BZOJ 4385: [POI2015]Wilcze doły 单调队列
- 【BZOJ 4385】[POI2015]Wilcze doły 单调队列
- bzoj 4385: [POI2015]Wilcze doły 单调队列
- BZOJ 2096([Poi2010]Pilots-单调队列-差值)
- BZOJ 1010 单调队列优化dp
- BZOJ 1499 NOI2005 瑰丽华尔兹 单调队列
- BZOJ 1012 线段树||单调队列
- BZOJ 2096 Poi2010 Pilots 单调队列
- BZOJ 1127 POI2008 KUP 单调队列
- 转载知乎-0基础进入BAT前需要准备什么
- 使用select 封装 socket api
- Blob_Tracking_Modules Opencv
- onWindowFocusChanged重要作用
- UVALive 6908 广搜
- BZOJ 4385 单调队列
- 爱情之路(二维spfa)
- python学习(5)字符串和编码
- HTTP协议详解(真的很牛逼)
- 【软件项目管理】资源平衡最好用于非关键路径活动
- __MACOSX
- 进程间通信机制(管道、信号、共享内存/信号量/消息队列)、线程间通信机制(互斥锁、条件变量、posix匿名信号量)
- 坚持#第74天~不要赖床!
- 牛客网编程题1