【Leetcode单调队列】- 洛谷P1714切蛋糕
单调队列
解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的。队尾是最小的。
队尾接受值,队首排出值。
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切蛋糕相关推荐
- 洛谷 - P1714 切蛋糕(单调队列+前缀和+思维)
题目链接:点击查看 题目大意:给出一个由n个数组成的序列,求长度不超过m的连续子段和中的最大值 题目分析:因为给出了一个限制条件,所以这就不能当普通的动态规划来做了,我们可以跑一遍前缀和,然后枚举每一 ...
- 洛谷—— P1714 切蛋糕
https://www.luogu.org/problem/show?pid=1714 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每 ...
- 洛谷 P1714 切蛋糕
题目链接 题目描述 今天是 Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大 ...
- #单调队列#洛谷 2698 [USACO12MAR]花盆Flowerpot
题目 给出N滴水的坐标(X,Y),y表示水滴的高度,x表示它下落到x轴的位置.每滴水每秒从(x,y)到(x,y-1).你需要把花盆放在x轴上的某个位置,使得从开始接水到水滴完之间的时间差至少为D,只要 ...
- P1714 切蛋糕(线段树+前缀和)
P1714 切蛋糕 解题思路:求连续区间不超过k的最大值.先求出前缀和,线段树维护前缀和,在一个长度为k的区间,找到前缀和最小的,用最后的值减去这个值,得到的就是在这个区间里的最大值.如果长度不能到达 ...
- 切蛋糕(洛谷P1714)
切蛋糕 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大, ...
- 【单调队列】【P1714】 切蛋糕
传送门 Description 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸 ...
- 洛谷 P1490 买蛋糕
P1490 买蛋糕 题目描述 野猫过生日,大家当然会送礼物了(咳咳,没送礼物的同志注意了哈!!),由于不知道送什么好,又考虑到实用性等其他问题,大家决定合伙给野猫买一个生日蛋糕.大家不知道最后要买的蛋 ...
- #单调栈#洛谷 2947 向右看齐
题目 若 i < j 且 h i < h j i<j且h_i<h_j i<j且hi<hj,那么 j j j是 i i i的仰望对象,问每头奶牛最近的仰望对象. ...
最新文章
- 人民日报:中国 31 个省市区最好的大学
- element 使用阿里图标变形了_web前端大厂面试题(阿里云笔试篇)
- 傅里叶,请再帮我们一次吧....
- 【AutoML】连续可微分架构如何用于网络结构搜索
- 无法初始化java类_myeclip运行java程序不能初始化类 NoClassDefFoundError
- 现代软件工程系列 学生读后感 梦断代码 DTSlob (2)
- groovy+mysql数据库_使用Groovy连接到MySQL
- windows运行xcopy计划任务 结果是0x4解决方案
- 【系统架构】VC 开发辅助工具大收集
- idea引不进jdk的包_idea install 时提示jdk的某个jar包的包不存在的问题
- c语言dll导出函数举例,DLL中导出函数的两种方式(dllexport与.def文件)
- SLAM领域著名实验室及大牛、SLAM领域大佬(不定期更新)
- android9手机* 代码,android Telephony学习 --- 第九篇 USSD简介
- zip命令加密和解密
- oracle算加权平均的函数,EXCEL中用公式算加权平均值
- 在bitlocker上锁的情况下,采用win10安装介质安装系统。
- 游戏音乐怎样达到阴阳平衡?
- 数据结构(C语言) 实验---图及其应用
- AI基础:自然语言处理基础之序列模型
- sqlite数据库查询语句,数据库中是否存在某个表