题目链接

题目描述

今天是 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

单调队列~
我们考虑怎么用单调队列实现:
首先队列内要递增,因为要求和,所以用递增便于实现前缀和相减求和,我们还是在队内存入下标,考虑出队情况:
1.队内元素大于 m+1m+1m+1,为什么不是大于 mmm?因为求一段区间的和是 sum[r]−sum[l−1]sum[r]-sum[l-1]sum[r]−sum[l−1],所以要在优先队列内多存一个下标,此时弹出队头
2.队内元素不满足递增序,此时弹出队尾即可
每次遍历更新一下答案即可,AC代码如下:

#include<bits/stdc++.h>using namespace std;
typedef long long ll;
const int N = 5e5 + 5;
int a[N], sum[N] = {0};
deque<int> q;int main() {int n, m, ans = 0;scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);sum[i] = a[i] + sum[i - 1];while (q.size() && q.front() < i - m) q.pop_front();while (q.size() && sum[i - 1] < sum[q.back()]) q.pop_back();q.push_back(i - 1);if (q.size()) {ans = max(ans, sum[i] - sum[q.front()]);}}printf("%d", ans);return 0;
}

洛谷 P1714 切蛋糕相关推荐

  1. 【Leetcode单调队列】- 洛谷P1714切蛋糕

    单调队列 解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的.队尾是最小的. 队尾接受值,队首排出值. Java实现用双端队列,前面接收值,后面排出来值. 这类题目往往是跟滑动窗口一起 ...

  2. 洛谷—— P1714 切蛋糕

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

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

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

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

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

  5. 切蛋糕(洛谷P1714)

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

  6. 洛谷 P1490 买蛋糕

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

  7. 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕

    题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...

  8. 洛谷刷题C语言:切蛋糕、概率、Bridž、NOTE、DOMINO

    记录洛谷刷题C语言qaq [NOI Online 2021 入门组] 切蛋糕 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 ...

  9. 切绳子【洛谷P1577】【二分】

    切绳子[洛谷P1577][二分] 文章目录 切绳子[洛谷`P1577`][二分] 题目描述 输入格式 输出格式 输入 输出 代码 题目描述 有 N 条绳子,它们的长度分别为 Li.如果从它们中切割出 ...

最新文章

  1. 什么是用户画像?如何构建用户画像?
  2. 解决ntp的错误 no server suitable for synchronization found
  3. Vue.js之组件及其易错点
  4. 常用的JPA标记 (转)
  5. requireJS多页面应用实例
  6. 5. Mac phpstorm 快捷键
  7. spring5.0学习笔记2
  8. SpringBoot 的错误处理机制
  9. (新手版)GitHub 使用思想,上传,首次上传及日常使用教程(肯定看得懂)
  10. 微信小程序获取当前时间及获取当前日期
  11. 支付宝沙箱测试手机网站支付,提示商户合作协议已到期,无法继续使用
  12. bootstrap3 表单构建器_Knex - 灵活轻便的 Node.js SQL 查询构建器
  13. [植树造林小游戏1.1]
  14. TensorFlow 使用 slim 模块搭建复杂网络
  15. VC++的窗口句柄和窗口ID
  16. 网神通留言本群发 v3.0 免费
  17. Java程序员的人生目标和学习方向真的很重要!!!
  18. CAS ABA问题及解决方案示例
  19. 人工神经网络与神经网络,人工神经网络基本概念
  20. 阅读_分享成为高效程序员的7个重要习惯

热门文章

  1. WorkPlus 赋能数字政府迈入发展新阶段
  2. MacBook 修改 .bash_profile
  3. Class类简单代码
  4. ubuntu gcc 安装 使用
  5. 用Annchain,加分
  6. 多元时间序列预测之LSTM的实现
  7. springfox接口文档如何关闭
  8. 商业数据分析【六】网络数据获取
  9. CADe_SIMu V1.0.0.1手把手学习笔记(1)
  10. Web前端UI框架 JQuery WeUI