BZOJ 4385 单调队列
思路: 
对于每一个r    要找最小的符合条件的l最优      这时候就要找在这个区间中 d长度的和的最大值   用单调队列更新就好了
//By SiriusRen
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 2000100
long 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);
}BZOJ 4385 单调队列的更多相关文章
- bzoj 1047 单调队列
		做4次单调队列优化DP. /************************************************************** Problem: 1047 User: idy ... 
- bzoj 3126 单调队列优化dp
		能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #i ... 
- BZOJ 3831 单调队列DP
		思路: 这好像是我刚学单调性的时候做的题 (我是不会告诉你 我被这题教做人了的...) i-stk[head]>k 删队头 f[stk[tail]]>f[i]||(f[stk[tail]] ... 
- BZOJ 2096 单调队列
		思路: 偷懒用的STL //By SiriusRen #include <deque> #include <cstdio> using namespace std; struc ... 
- BZOJ 1012 单调队列+二分
		思路: 维护一个单减的序列 序号是单增的 每回二分查找第一个比询问的大的值 我手懒 用得lower_bound //By SiriusRen #include <cstdio> #incl ... 
- 【BZOJ 1233】  [Usaco2009Open]干草堆tower (单调队列优化DP)
		1233: [Usaco2009Open]干草堆tower Description 奶牛们讨厌黑暗. 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 .一共有N大包的 ... 
- [BZOJ 1047] [HAOI2007] 理想的正方形 【单调队列】
		题目链接:BZOJ - 1047 题目分析 使用单调队列在 O(n^2) 的时间内求出每个 n * n 正方形的最大值,最小值.然后就可以直接统计答案了. 横向有 a 个单调队列(代码中是 Q[1] ... 
- 【bzoj 1414】对称的正方形 单调队列+manacher
		Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究.最近,Orez又得到了一些数据,并已经把它们排成了一个n行m列的矩阵.通过观察,Orez发现这些数据蕴涵了一 ... 
- BZOJ.4182.Shopping(点分治/dsu on tree 树形依赖背包 多重背包 单调队列)
		BZOJ 题目的限制即:给定一棵树,只能任选一个连通块然后做背包,且每个点上的物品至少取一个.求花费为\(m\)时最大价值. 令\(f[i][j]\)表示在点\(i\),已用体积为\(j\)的最大价值 ... 
随机推荐
- 【转载】spring boot 链接 虚拟机(Linux) redis
			原文:https://www.imooc.com/article/43279?block_id=tuijian_wz 前提是你已经安装redis且支持远程连接,redis的安装这里不再赘述,有需要的可 ... 
- mariadb数据库的链接查询和表格设计
			链接查询 练习准备: --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name ... 
- Oracle with as 嵌套
			oracle with as可以理解为临时视图,可以极大的简化sql语句,并且支持嵌套使用. With c3 As(Select * From v_tr_daily Where p_date=to_ ... 
- 【转】C#添加修改删除文件文件夹大全
			[转]C#添加修改删除文件文件夹大全 C#添加修改删除文件文件夹大全 StreamWriter sw = File.AppendText(Server.MapPath(".")+& ... 
- hdu 1075 What Are You Talking About(map)
			What Are You Talking About Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K ... 
- Django是什么
			Django是什么 Django是什么? 是基于python语言的优秀的web开发框架.很多有名的网站比如youtube就是用django开发的. Python写的开源Web应用框架, 快速搭建blo ... 
- 可以通过shadowserver来查看开放的mdns(用以反射放大攻击)——中国的在 https://mdns.shadowserver.org/workstation/index.html
			Open mDNS Scanning Project 来自:https://mdns.shadowserver.org/ If you are looking at this page, then m ... 
- Mysql优化ibdata1大小
			在MySQL数据库中,如果不指定innodb_file_per_table参数来单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件.mysql ibdata1存放数据,索引等,是MYS ... 
- 30.algorithm排序小结
			如果容器中是类,如果要调用sort则需要重载操作符 "<" 包含头文件 #define _CRT_SECURE_NO_WARNINGS #include <vector ... 
- animation和transition做动画的区别
			animation做动画,是不需要去触发的,可以定义一开始就执行 transition做动画,是需要人为触发,才能执行的 
