news 2026/6/10 18:20:33

AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc438_d Tail of Snake

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc438_d Tail of Snake

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:AtCoder Beginner Contest竞赛题解 | 汇总


【题目来源】

洛谷:AT_abc438_d Tail of Snake - 洛谷

【题目描述】

Snuke 正在观察一条蛇,他很好奇蛇的头部、蛇身和蛇尾分别是哪个部分。他把蛇分成了N NN块,并评估了每个块的头部相似度、身体相似度和尾部相似度。然后,他决定找出使相似值总和最大的分割方法。

给你长度为N NN的整数序列A = ( A 1 , A 2 , … , A N ) A = (A_1, A_2, \ldots, A_N)A=(A1,A2,,AN)B = ( B 1 , B 2 , … , B N ) B = (B_1, B_2, \ldots, B_N)B=(B1,B2,,BN)C = ( C 1 , C 2 , … , C N ) C = (C_1, C_2, \ldots, C_N)C=(C1,C2,,CN)

求满足1 ≤ x < y < N 1 \le x < y < N1x<y<N的一对整数( x , y ) (x, y)(x,y),最大化∑ i = 1 x A i + ∑ i = x + 1 y B i + ∑ i = y + 1 N C i \displaystyle\sum_{i = 1}^{x} A_i + \sum_{i = x + 1}^{y} B_i + \sum_{i = y + 1}^{N} C_ii=1xAi+i=x+1yBi+i=y+1NCi的值。

【输入】

输入内容由标准输入法提供,格式如下

N NN
A 1 A_1A1A 2 A_2A2… \ldotsA N A_NAN
B 1 B_1B1B 2 B_2B2… \ldotsB N B_NBN
C 1 C_1C1C 2 C_2C2… \ldotsC N C_NCN

【输出】

输出答案。

【输入样例】

5 1 4 2 4 3 2 3 4 2 2 3 2 4 4 3

【输出样例】

16

【算法标签】

《洛谷 AT_abc438_d Tail of Snake》 #动态规划DP# #前缀和#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 定义int为long long,防止溢出constintN=300005;intn;// 天数inta[N],b[N],c[N];// 每天的三种选择intsa[N],sb[N],sc[N];// 前缀和数组inttmp[N];// 后缀最大值数组signedmain()// signed是int的别名,因为定义了#define int long long{// 输入天数cin>>n;// 输入a数组并计算前缀和safor(inti=1;i<=n;i++){cin>>a[i];sa[i]=sa[i-1]+a[i];// sa[i] = a[1]到a[i]的和}// 输入b数组并计算前缀和sbfor(inti=1;i<=n;i++){cin>>b[i];sb[i]=sb[i-1]+b[i];// sb[i] = b[1]到b[i]的和}// 输入c数组并计算前缀和scfor(inti=1;i<=n;i++){cin>>c[i];sc[i]=sc[i-1]+c[i];// sc[i] = c[1]到c[i]的和}// 预处理tmp数组:从后往前计算后缀最大值// tmp[i] = max_{j>=i} (sb[j] + (sc[n] - sc[j]))for(inti=n-1;i>1;i--){// 比较当前值sb[i] + 从i+1到n的c的和 与 后面的最大值tmp[i+1]tmp[i]=max(tmp[i+1],sb[i]+sc[n]-sc[i]);}// 输出调试信息(注释部分)// for (int i=1; i<=n; i++)// cout << tmp[i] << " ";// cout << endl;// for (int i=2; i<n; i++)// cout << tmp[i] << " ";// cout << endl;// 计算最终答案intans=-1;for(inti=1;i<n;i++){// 公式:sa[i] + tmp[i+1] - sb[i]ans=max(ans,sa[i]+tmp[i+1]-sb[i]);}cout<<ans<<endl;return0;}

【运行结果】

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

【C++异步网络架构设计】:手把手教你重构千万级连接系统

第一章&#xff1a;C异步网络架构重构概述在现代高性能服务器开发中&#xff0c;C异步网络架构的重构已成为提升系统吞吐量与响应速度的关键手段。传统的同步阻塞I/O模型难以应对高并发场景&#xff0c;而基于事件驱动的异步架构通过非阻塞I/O和回调机制&#xff0c;显著降低了…

作者头像 李华
网站建设 2026/6/10 11:28:19

【AIGC时代C++核心竞争力】:掌握这7种吞吐量优化技巧,性能遥遥领先

第一章&#xff1a;AIGC时代C的性能突围之路在人工智能生成内容&#xff08;AIGC&#xff09;迅猛发展的当下&#xff0c;计算密集型任务对系统性能提出了前所未有的要求。C凭借其底层内存控制、零成本抽象和高并发支持能力&#xff0c;在高性能计算、实时推理引擎和大型模型部…

作者头像 李华
网站建设 2026/6/10 13:46:25

广告业的2025:AI在狂欢,大厂在加税

文/刀客doc(头条精选作者) 去年的广告业盘点&#xff0c;我的主题是&#xff1a;萧条的广告公司和赚翻的广告平台。 一年过去了&#xff0c;这个判断几乎没什么需要修正的地方。 2025年广告行业并没有等来任何戏剧性的反转。 广告创意公司依旧在紧衣缩食&#xff0c;代理集…

作者头像 李华
网站建设 2026/6/10 12:13:09

Git Submodule引入外部TensorFlow模块

Git Submodule 引入外部 TensorFlow 模块的工程实践 在现代 AI 工程开发中&#xff0c;我们常常面临这样一个矛盾&#xff1a;既要快速集成成熟的深度学习框架&#xff08;如 TensorFlow&#xff09;&#xff0c;又要避免项目因依赖臃肿而失去可控性。尤其是在多团队协作、持续…

作者头像 李华
网站建设 2026/6/10 11:58:19

揭秘C++构建分布式AI推理系统:如何实现毫秒级任务调度响应

第一章&#xff1a;C构建分布式AI推理系统的背景与挑战随着人工智能模型规模的持续增长&#xff0c;单机部署已无法满足高并发、低延迟的推理需求。C凭借其高性能、低延迟和对系统资源的精细控制能力&#xff0c;成为构建分布式AI推理系统的核心语言选择。在大规模部署场景中&a…

作者头像 李华
网站建设 2026/6/10 11:12:01

python+locust电商全流程性能测试

电商全流程为什么要做全链路性能测试&#xff1f; 1、发现和解决问题&#xff1a;全链路性能测试可以模拟实际的用户行为和场景&#xff0c;以及发现系统的瓶颈和潜在的问题&#xff0c;及时发现和解决问题。 2、预防系统崩溃&#xff1a;电商系统在高峰期可能会面临巨大的流量…

作者头像 李华