news 2026/6/15 17:47:21

洛谷 T478345:循环数组 ← 单调队列 + 破环成链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷 T478345:循环数组 ← 单调队列 + 破环成链

【题目来源】
https://www.luogu.com.cn/problem/T478345

【题目描述】
给你一个循环的数组 A[1], A[2], A[3], ...., A[n]。循环的数组意思是 A[1] 的左边是 A[n],A[n] 的右边是 A[1],也就是可以理解为他们连成了一个环。
现在你的任务是找到一个字串( A[1,2,3] 算子串,A[n-1,n,1,2] 也算,但是必须连续,A[1,3,4] 则不算),这个子串要求长度小于等于 K。在这个要求下,子串的元素和最大能是多少?
注意子串不能为空。1<=N<=1000000,1<=K<=N,-1000<=A[i]<=1000

【输入格式】
第一行两个整数,N,K,空格隔开。
接下来一行 N 个数,空格隔开,为数组元素 A[1] ... A[n]。​​​​​​​

【输出格式】
输出一行,为一个整数,代表最大和。

【输入样例】
6 3
6 -1 2 -6 5 -5

【输出样例】
7

【数据范围】
1<=N<=1000000,1<=K<=N,-1000<=A[i]<=1000​​​​​​​​​​​​​​

【算法分析】
● 环形数组的经典处理技巧:
破环成链,将原数组拼接一份,得到长度为 2N 的数组,原环形的任意连续子串都对应新数组的一段长度 ≤K 的连续子串。
● 前缀和 + 单调队列优化:利用前缀和将「区间和」转化为「两个前缀和的差值」,用单调队列维护前缀和的最小值,从而在 O(N) 时间内找到最优解。

【算法代码】

#include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn=1e6+5; LL imax=LLONG_MIN; LL s[maxn<<1]; //presum int a[maxn]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,k; cin>>n>>k; for(int i=1; i<=n; i++) { cin>>a[i]; } for(int i=1; i<=n+k; i++) { //破环成链 s[i]=s[i-1]+a[(i-1)%n+1]; //环形取数 } deque<int> q; //单调队列存下标,保证s[下标]单调递增 q.push_back(0); for(int i=1; i<=n+k-1; i++) { while(!q.empty() && q.front()<i-k) { q.pop_front(); } if(!q.empty()) { imax=max(imax,s[i]-s[q.front()]); } while(!q.empty() && s[i]<=s[q.back()]) { q.pop_back(); } q.push_back(i); } cout<<imax<<endl; return 0; } /* in: 6 3 6 -1 2 -6 5 -5 out: 7 */





【参考文献】
​​​​​​​
https://blog.csdn.net/hnjzsyjyj/article/details/143176072
https://www.luogu.com.cn/problem/T478345







版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:36:16

aa---(9)

41.PetsThe cat.The dog.The bunny.The bird.The goldfish.The mouse.The turtle.The hamster(仓鼠).42.Picking ApplesFocus QuestionWhat can you see when picking apples from trees?apples friends basket ladder farmer tractor(拖拉机)textThe farmer.The tractorThe t…

作者头像 李华
网站建设 2026/5/22 7:33:03

下一代CMO的核心课题:通过GEO优化,管理AI口中的“品牌第二身份”

生成式AI的普及正在引发一场静默但深刻的变革&#xff1a;搜索引擎的“答案页”正被AI助手的“对话流”所取代。当用户习惯于向ChatGPT、Copilot等工具直接提问并获取整合答案时&#xff0c;传统的“关键词排名-链接点击”营销逻辑便出现了根本性断裂。在这一断裂处兴起的新领域…

作者头像 李华
网站建设 2026/6/14 9:21:13

永磁同步电机(PMSM)匝间短路故障Simulink仿真探索

永磁同步电机&#xff08;pmsm&#xff09;匝间短路故障simulink仿真。 提供文档参考说明。在电机领域&#xff0c;永磁同步电机&#xff08;PMSM&#xff09;以其高效、节能等诸多优点&#xff0c;被广泛应用于工业驱动、电动汽车等多个场景。然而&#xff0c;电机运行过程中&…

作者头像 李华
网站建设 2026/6/15 14:41:40

交通仿真软件:SUMO_(18).交通仿真中的机器学习应用

交通仿真中的机器学习应用 在交通仿真领域&#xff0c;机器学习技术的应用已经变得越来越广泛。通过机器学习&#xff0c;我们可以更准确地预测交通流量、优化交通信号控制、提高路径规划的效率等。本节将详细介绍如何在交通仿真软件中应用机器学习技术&#xff0c;特别是如何在…

作者头像 李华
网站建设 2026/6/15 14:40:27

刚拿到注塑厂报价单就懵?塑料粒子价格波动像坐过山车?今天直接甩你一套车间老师傅用了十年的硬核工具包,手把手教你拆解注塑成本(文末有彩蛋)

注塑成本计算和降本资料&#xff0c;内含注塑成本分析表&#xff0c;塑胶产品报价表&#xff0c;注塑成型周期及计算公式和各种塑料成本&#xff0c;有需求的朋友不要错过。 好评后送钣金、铸造、机加工等核价表材料费计算别只会用计算器敲&#xff0c;试试这个Python脚本&…

作者头像 李华