BZOJ 4385 单调队列
2016-10-23 20:54
106 查看
思路:
对于每一个r 要找最小的符合条件的l最优 这时候就要找在这个区间中 d长度的和的最大值 用单调队列更新就好了
//By SiriusRen #include <cstdio> #include <algorithm> using namespace std; #define N 2000100 long long sum ,p,g ; int n,d,w ,head,tail,l,ans,que ; 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 -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); }
相关文章推荐
- bzoj 4385: [POI2015]Wilcze doły 单调队列
- BZOJ 4385 单调队列
- BZOJ 4385: [POI2015]Wilcze doły 单调队列
- 【BZOJ4385】[POI2015]Wilcze doły【单调队列】【前缀和】【Two Pointers】
- 【BZOJ 4385】[POI2015]Wilcze doły 单调队列
- BZOJ 4385 Wilcze doły - 单调队列
- bzoj4385 Wilcze doły 单调队列
- [bzoj4385][POI2015]Wilcze doły_单调队列
- [bzoj1342][Baltic2007]Sound静音问题_单调队列
- bzoj 1047: [HAOI2007]理想的正方形【单调队列】
- bzoj 3893: [Usaco2014 Dec]Cow Jog 并查集+单调队列
- BZOJ 1127: [POI2008]KUP|单调队列|思路题
- 【单调队列】【动态规划】bzoj3831 [Poi2014]Little Bird
- 【BZOJ2806】Cheat(后缀自动机,二分答案,动态规划,单调队列)
- bzoj 2806 [Ctsc2012]Cheat 后缀自动机 单调队列优化dp
- BZOJ 1012([JSOI2008]最大数maxnumber-单调队列)
- BZOJ 1514 _ [POI2006]ZAB-Frogs 单调队列+二分BFS
- [BZOJ1023][SHOI2008[Cactus仙人掌]][Tarjan+单调队列+树形DP]
- BZOJ 1127 POI2008 KUP 单调队列
- 【bzoj 1293】[SCOI2009]生日礼物(乱搞|单调队列)