单调队列

解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的。队尾是最小的。

队尾接受值队首排出值。

Java实现用双端队列,前面接收值,后面排出来值。

这类题目往往是跟滑动窗口一起出现的,在滑动窗口K的范围内查找最大最小值。

2.洛谷P1714切蛋糕

今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。

小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。

吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大。

输入格式

输入文件cake.in的第一行是两个整数N,M。分别代表共有N小块蛋糕,小Z最多只能吃M小块。

第二行用空格隔开的N个整数,第i个整数Pi代表第i小块蛋糕的幸运值。

输出格式

输出文件cake.out只有一行,一个整数,为小Z能够得到的最大幸运值。

输入输出样例

输入 #1复制

5 2
1 2 3 4 5

输出 #1复制

9

输入 #2复制

6 3
1 -2 3 -4 5 -6

输出 #2复制

5

维护一个最小的值;在单调队列中,队首最小,队首到队尾单调递增

import java.util.*;class Main{// 主函数
public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[] pre = new int[n];// 前缀数组for(int i=0;i<n;i++){pre[i] = sc.nextInt();if(i!=0) {pre[i] = pre[i] + pre[i-1];}}// 双端单调队列维护下标值Deque<Integer> queue = new LinkedList<>();int res = Integer.MIN_VALUE;// 滑动窗口 里面维护的一个最小的 即队首到队尾是递增的 队首是最小的for(int i=0;i<n;i++){while(!queue.isEmpty()&&pre[i]<pre[queue.getLast()]){// 队尾排出来queue.pollLast();}// 入队列queue.offerLast(i);// 控制最大值在滑窗范围内不在就排出来while(queue.peekFirst()+m<=i){queue.pollFirst();}// 不需要非得滑窗内记录值res = Math.max(res,pre[i]-pre[queue.peekFirst()]);}// 输出结果System.out.println(res);}
}

【Leetcode单调队列】- 洛谷P1714切蛋糕相关推荐

  1. 洛谷 - P1714 切蛋糕(单调队列+前缀和+思维)

    题目链接:点击查看 题目大意:给出一个由n个数组成的序列,求长度不超过m的连续子段和中的最大值 题目分析:因为给出了一个限制条件,所以这就不能当普通的动态规划来做了,我们可以跑一遍前缀和,然后枚举每一 ...

  2. 洛谷—— P1714 切蛋糕

    https://www.luogu.org/problem/show?pid=1714 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每 ...

  3. 洛谷 P1714 切蛋糕

    题目链接 题目描述 今天是 Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大 ...

  4. #单调队列#洛谷 2698 [USACO12MAR]花盆Flowerpot

    题目 给出N滴水的坐标(X,Y),y表示水滴的高度,x表示它下落到x轴的位置.每滴水每秒从(x,y)到(x,y-1).你需要把花盆放在x轴上的某个位置,使得从开始接水到水滴完之间的时间差至少为D,只要 ...

  5. P1714 切蛋糕(线段树+前缀和)

    P1714 切蛋糕 解题思路:求连续区间不超过k的最大值.先求出前缀和,线段树维护前缀和,在一个长度为k的区间,找到前缀和最小的,用最后的值减去这个值,得到的就是在这个区间里的最大值.如果长度不能到达 ...

  6. 切蛋糕(洛谷P1714)

    切蛋糕 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大, ...

  7. 【单调队列】【P1714】 切蛋糕

    传送门 Description 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸 ...

  8. 洛谷 P1490 买蛋糕

    P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...

  9. #单调栈#洛谷 2947 向右看齐

    题目 若 i < j 且 h i < h j i<j且h_i<h_j i<j且hi​<hj​,那么 j j j是 i i i的仰望对象,问每头奶牛最近的仰望对象. ...

最新文章

  1. 人民日报:中国 31 个省市区最好的大学
  2. element 使用阿里图标变形了_web前端大厂面试题(阿里云笔试篇)
  3. 傅里叶,请再帮我们一次吧....
  4. 【AutoML】连续可微分架构如何用于网络结构搜索
  5. 无法初始化java类_myeclip运行java程序不能初始化类 NoClassDefFoundError
  6. 现代软件工程系列 学生读后感 梦断代码 DTSlob (2)
  7. groovy+mysql数据库_使用Groovy连接到MySQL
  8. windows运行xcopy计划任务 结果是0x4解决方案
  9. 【系统架构】VC 开发辅助工具大收集
  10. idea引不进jdk的包_idea install 时提示jdk的某个jar包的包不存在的问题
  11. c语言dll导出函数举例,DLL中导出函数的两种方式(dllexport与.def文件)
  12. SLAM领域著名实验室及大牛、SLAM领域大佬(不定期更新)
  13. android9手机* 代码,android Telephony学习 --- 第九篇 USSD简介
  14. zip命令加密和解密
  15. oracle算加权平均的函数,EXCEL中用公式算加权平均值
  16. 在bitlocker上锁的情况下,采用win10安装介质安装系统。
  17. 游戏音乐怎样达到阴阳平衡?
  18. 数据结构(C语言) 实验---图及其应用
  19. AI基础:自然语言处理基础之序列模型
  20. sqlite数据库查询语句,数据库中是否存在某个表

热门文章

  1. 大灰狼的故事-忠贞的大灰狼
  2. 我为什么从macOS迁移到FreeBSD?
  3. 嵌入式分享合集105
  4. 论文浅尝-综述 | 基于强化学习的知识图谱综述
  5. Linux环境下Anaconda3安装配置pytorch
  6. 专访丁衣:极路由这一年
  7. 流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
  8. unity 实现简易打飞碟游戏
  9. VHDL硬件描述语言学习笔记(三)
  10. 2020cvpr-Correlation-Guided Attention for Corner Detection Based Visual Tracking