news 2025/12/31 15:05:04

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/31 15:04:23

Docker安装后无法运行GPU容器?检查nvidia-docker

Docker安装后无法运行GPU容器&#xff1f;检查nvidia-docker 在部署深度学习模型时&#xff0c;你是否遇到过这样的场景&#xff1a;明明服务器装了高性能NVIDIA显卡&#xff0c;Docker也配好了&#xff0c;可一运行TensorFlow或PyTorch容器&#xff0c;却提示“找不到GPU设备”…

作者头像 李华
网站建设 2025/12/31 15:03:43

C++26协程、模式匹配落地在即(Clang 17早期实践报告)

第一章&#xff1a;C26新特性概览与Clang 17支持现状随着C标准的持续演进&#xff0c;C26正逐步成形&#xff0c;聚焦于提升语言表达力、运行效率与开发体验。尽管C26尚未正式发布&#xff0c;但ISO委员会已明确多个候选特性&#xff0c;部分已在主流编译器中进入实验性支持阶段…

作者头像 李华
网站建设 2025/12/31 15:03:35

transformer模型详解前馈神经网络的作用

Transformer模型中前馈神经网络的深层作用与工程实践 在当前大模型主导的技术浪潮中&#xff0c;我们早已习惯了谈论注意力机制如何颠覆序列建模&#xff0c;讨论多头注意力如何捕捉长距离依赖。但有一个组件始终默默无闻地支撑着整个架构——那就是前馈神经网络&#xff08;Fe…

作者头像 李华
网站建设 2025/12/31 15:03:31

transformer模型详解自注意力机制的数学原理与实现

Transformer模型详解&#xff1a;自注意力机制的数学原理与实现 在深度学习迅猛发展的今天&#xff0c;自然语言处理任务早已不再依赖传统的循环神经网络&#xff08;RNN&#xff09;或卷积结构来建模序列数据。2017年&#xff0c;Google提出的 Transformer 架构彻底改变了这一…

作者头像 李华
网站建设 2025/12/31 15:03:21

GitHub Pages免费托管你的AI技术博客(含TensorFlow案例)

GitHub Pages 免费托管你的 AI 技术博客&#xff08;含 TensorFlow 案例&#xff09; 在今天&#xff0c;一个开发者的技术影响力不再仅仅取决于他写了多少代码&#xff0c;而更在于他能否清晰地表达、有效地传播自己的思考与实践。尤其是人工智能领域&#xff0c;模型的训练过…

作者头像 李华
网站建设 2025/12/31 15:03:08

初学者必看的大模型微调指南,从SFT到RL的实操精髓

这两年AI大模型的发展速度简直超出想象&#xff0c;我国超10亿参数的大模型一年之内就突破了100个&#xff0c;现在还在持续迭代发掘中。时代在瞬息万变&#xff0c;与其在传统行业里停滞不前&#xff0c;不如尝试拥抱新兴行业&#xff0c;而AI大模型恰恰是这两年的核心风口。据…

作者头像 李华