当前位置: 首页 > news >正文

题解:洛谷 P1714 切蛋糕

【题目来源】

洛谷:P1714 切蛋糕 - 洛谷

【题目描述】

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

小 Z 作为寿星,自然希望吃到的蛋糕的幸运值总和最大,但小 Z 最多又只能吃 \(m(m\le n)\) 小块的蛋糕。

请你帮他从这 \(n\) 小块中找出连续\(k(1 \le k\le m)\) 块蛋糕,使得其上的总幸运值最大。

形式化地,在数列 \(\{p_n\}\) 中,找出一个子段 \([l,r](r-l+1\le m)\),最大化 \(\sum\limits_{i=l}^rp_i\)

【输入】

第一行两个整数 \(n,m\)。分别代表共有 \(n\) 小块蛋糕,小 Z 最多只能吃 \(m\) 小块。

第二行 \(n\) 个整数,第 \(i\) 个整数 \(p_i\) 代表第 \(i\) 小块蛋糕的幸运值。

【输出】

仅一行一个整数,即小 Z 能够得到的最大幸运值。

【输入样例】

5 2
1 2 3 4 5

【输出样例】

9

【算法标签】

《洛谷 P1714 切蛋糕》 #单调队列# #前缀和# #队列# ST表

【代码详解】

#include <bits/stdc++.h>
using namespace std;
#define int long long  // 将int重新定义为long long类型
const int N = 500005;  // 定义常量N,最大数组大小
int n, m, a[N], sa[N], ans = -1e9;  // n: 数组长度, m: 最大子数组长度, a: 原始数组, sa: 前缀和数组, ans: 结果struct Node
{int s, idx;  // s: 前缀和值, idx: 索引位置
};
deque<Node> dq;  // 双端队列,用于维护滑动窗口最小值signed main()  // 因为使用了#define int long long, 所以用signed main
{cin >> n >> m;  // 输入数组长度和最大子数组长度for (int i = 1; i <= n; i++){cin >> a[i];  // 输入数组元素sa[i] = sa[i - 1] + a[i];  // 计算前缀和}for (int i = 1; i <= n; i++){// 维护队列:删除超出窗口范围的元素// 窗口大小为m,只考虑i-m到i-1的前缀和while (dq.size()){if (dq.front().idx < i - m)  // 如果队首元素索引小于i-m,超出窗口范围dq.pop_front();  // 删除队首元素else break;  // 否则停止}// 维护队列:保持队列单调递增// 如果队尾元素的前缀和大于等于当前前缀和,则删除队尾元素// 因为对于后面的i来说,当前元素更优(前缀和更小,索引更靠后)while (dq.size()){if (dq.back().s >= sa[i - 1])  // 如果队尾元素的前缀和大于等于当前前缀和dq.pop_back();  // 删除队尾元素else break;  // 否则停止}// 将当前元素的前缀和加入队列dq.push_back({sa[i - 1], i - 1});// 更新答案:当前前缀和减去队列最小值// 即sa[i] - sa[j] 表示子数组a[j+1...i]的和ans = max(ans, sa[i] - dq.front().s);}cout << ans << endl;  // 输出最大子数组和return 0;
}

【运行结果】

5 2
1 2 3 4 5
9
http://www.jsqmd.com/news/394212/

相关文章:

  • 2026全自动粘钉一体机厂家大揭秘,选对不踩雷,国内知名的全自动粘钉一体机直销厂家精选综合实力TOP企业 - 品牌推荐师
  • 题解:洛谷 P2880 [USACO07JAN] Balanced Lineup G
  • 热销榜单:2026年豪华按摩椅公司推荐,精选五大知名腿脚拉伸按摩椅品牌 - 睿易优选
  • 别再把它当记事本了!Notepad++ 深度定制与效率进阶全指南
  • Vite环境变量终极对决:define 与 import.meta.env,如何明智选择?
  • 题解:洛谷 P1886 【模板】单调队列 / 滑动窗口
  • 代码诊疗室:谁动了我的 CPU?深度破解那些“玄学”Bug
  • 奥数-组合数学 - ace-
  • 从零开始学Flink:实时数仓与维表时态Join实战
  • 奥数-几何 - ace-
  • 基于小波神经网络WNN的短时负荷预测附Matlab代码
  • P2757 等差子序列 Sol
  • 晶抗生物2026年市场评测:用户选择背后的产品逻辑,小鼠的elisa试剂盒/酶联免疫试剂盒,晶抗生物公司推荐排行 - 品牌推荐师
  • 题解:洛谷 P7910 [CSP-J 2021] 插入排序
  • 基于完整集成经验模态分解(CEEMDAN)和近似熵(ApEn)CEENDAN-ApEn信号去噪附Matlab代码
  • 微信小程序Python知茶叶知识科普商城考试错题
  • 基于线性判别分析和三比值法的变压器故障识别附Matlab代码
  • 三菱FX5U+MCGS(昆仑通态)程序 1、完整的上下料接驳台项目分享; 2、三菱FX5U全S...
  • 揭秘V8引擎的类型混淆漏洞:安全开发的警示与启示
  • 电网“搭线“指南:用VSG预同步玩转三电平逆变器
  • 奥数-数论 - ace-
  • 告别 DNS 污染与封锁:手把手教你免费搭建独享 Cloudflare DoH 服务器,全球都可访问!
  • 题解:洛谷 P2671 [NOIP 2015 普及组] 求和
  • YOLO26涨点改进 | 全网独家创新,注意力改进篇| SCI一区Top | 引入AFCA自适应细粒度通道注意力,联合建模全局与局部通道依赖关系,适合目标检测、图像去雾、关键点检测、图像分类、图像分割
  • 【一文读懂】RAG的重要组成-向量数据库
  • 告别 DNS 污染与封锁:手把手教你免费搭建独享 Cloudflare DoH 服务器,全球都可访问!使用Cloudflare Zero Trust功能。
  • 实测对比后!千笔,口碑爆棚的降AIGC工具
  • RAG系统优化指南:Chunk分块策略详解,从入门到精通,收藏这一篇就够了!!
  • 题解:洛谷 P7072 [CSP-J 2020] 直播获奖
  • 2026最新!千笔ai写作,MBA论文写作利器