2023年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第2题)
2023年信奥赛C提高组csp-s初赛真题及答案解析完善程序第2题#### 第2题最大值之和给定整数序列a 0 , ⋯ , a n − 1 a_0,⋯,a_{n−1}a0​,⋯,an−1​求该序列所有非空连续子序列的最大值之和。上述参数满足1 ≤ n ≤ 10 5 和 1 ≤ a i ≤ 10 8 1≤n≤10^5和 1≤a_i≤10^81≤n≤105和1≤ai​≤108。一个序列的非空连续子序列可以用两个下标 l和 r其中0≤l≤rn表示对应的序列为a l , a l 1 , ⋯ , a r a_l,a_{l1},⋯,a_ral​,al1​,⋯,ar​。两个非空连续子序列不同当且仅当下标不同。例如当原序列为[ 1 , 2 , 1 , 2 ] [1,2,1,2][1,2,1,2]时要计算子序列 [1]、[2]、[1]、[2]、[1,2]、[2,1]、[1,2]、[1,2,1]、[2,1,2]、[1,2,1,2] 的最大值之和答案为 18。注意 [1,1] 和 [2,2]虽然是原序列的子序列但不是连续子序列所以不应该被计算。另外注意其中有一些值相同的子序列但由于他们在原序列中的下标不同属于不同的非空连续子序列所以会被分别计算。解决该问题有许多算法以下程序使用分治算法时间复杂度 O(nlog⁡n)。试补全程序。#includeiostream#includealgorithm#includevectorconstintMAXN100000;intn;inta[MAXN];longlongans;voidsolve(intl,intr){if(l1r){ansa[l];return;}intmid(lr)1;std::vectorintpre(amid,ar);for(inti1;ir-mid;i)①;std::vectorlonglongsum(r-mid1);for(inti0;ir-mid;i)sum[i1]sum[i]pre[i];for(intimid-1,jmid,max0;il;--i){while(jr②)j;maxstd::max(max,a[i]);ans③;ans④;}solve(l,mid);solve(mid,r);}intmain(){std::cinn;for(inti0;in;i)std::cina[i];⑤;std::coutansstd::endl;return0;}①处应填A.pre[i] std::max(pre[i - 1], a[i - 1])B.pre[i 1] std::max(pre[i],pre[i 1])C.pre[i] std::max(pre[i -1], a[i])D.pre[i] std::max(pre[i], pre[i - 1])②处应填A.a[j] maxB.a[j] a[i]C.pre[j - mid] maxD.pre[j - mid] max③处应填A.(long long)(j - mid) * maxB.(long long)(j - mid) * (i - 1) * maxC.sum[j - mid]D.sum[j - mid] * (i - 1)④处应填A.(long long)(r - j) * maxB.(long long)(r - j) * (mid - i) * maxC.sum[r - mid] - sum[j - mid]D.(sum[r - mid] - sum[j - mid]) * (mid - i)⑤处应填A.solve(0n)B.solve(0n - 1)C.solve(1n)D.solve(1n - 1)解题思路该程序使用分治算法计算序列所有非空连续子序列的最大值之和。分治的核心思想是将区间[ l , r ) [l, r)[l,r)分成左右两半[ l , mid ) [l, \text{mid})[l,mid)和[ mid , r ) [\text{mid}, r)[mid,r)递归计算左右内部的贡献再计算跨越中点的子序列的贡献。跨越中点贡献的计算预处理右半部分的前缀最大值数组pre及其前缀和数组sum。对于每个左端点i ii从mid − 1 \text{mid}-1mid−1向左枚举维护左半部分的最大值max \text{max}max并利用双指针j jj将右端点分为两部分右端点j ∈ [ mid , j 0 ) j \in [\text{mid}, j_0)j∈[mid,j0​)区间最大值由左半部分贡献即max \text{max}max。右端点j ∈ [ j 0 , r ) j \in [j_0, r)j∈[j0​,r)区间最大值由右半部分贡献即pre [ j − mid ] \text{pre}[j-\text{mid}]pre[j−mid]。指针j jj的移动条件为a [ j ] a [ i ] a[j] a[i]a[j]a[i]即找到第一个a [ j ] ≥ a [ i ] a[j] \ge a[i]a[j]≥a[i]的位置。答案及解析①D预处理pre为右半部分的前缀最大值。②B移动指针j jj的条件为a [ j ] a [ i ] a[j] a[i]a[j]a[i]。③A第一组贡献为( j − mid ) × max (\text{j} - \text{mid}) \times \text{max}(j−mid)×max。④C第二组贡献为sum [ r − mid ] − sum [ j − mid ] \text{sum}[r-\text{mid}] - \text{sum}[j-\text{mid}]sum[r−mid]−sum[j−mid]。⑤A初始调用为solve(0, n)表示整个区间[ 0 , n ) [0, n)[0,n)。专栏推荐信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}1、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html2、csp信奥赛冲刺一等奖有效刷题题解CSP信奥赛C初赛及复赛高频考点真题解析持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转CSP信奥赛C一等奖通关刷题题单及题解持续更新https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html3、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html4、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}

相关新闻

【完整源码+数据集+部署教程】交通标线车道线分割系统源码&数据集分享 [yolov8-seg-C2f-EMSC&yolov8-seg-SPPF-LSKA等50+全套改进创新点发刊_一键训练教程_We

【完整源码+数据集+部署教程】交通标线车道线分割系统源码&数据集分享 [yolov8-seg-C2f-EMSC&yolov8-seg-SPPF-LSKA等50+全套改进创新点发刊_一键训练教程_We

背景意义 随着城市化进程的加快,交通管理面临着日益严峻的挑战。交通标线作为道路交通管理的重要组成部分,不仅为驾驶员提供了行驶指引,还在交通安全中发挥着不可或缺的作用。传统的交通标线检测方法多依赖于人工标注和规则识别,效…

2026/5/17 3:55:14 阅读更多 →
【完整源码+数据集+部署教程】航拍区域图像分割系统源码&数据集分享 [yolov8-seg-C2f-DAttention&yolov8-seg-HGNetV2等50+全套改进创新点发刊_一键训练教程

【完整源码+数据集+部署教程】航拍区域图像分割系统源码&数据集分享 [yolov8-seg-C2f-DAttention&yolov8-seg-HGNetV2等50+全套改进创新点发刊_一键训练教程

背景意义 随着无人机技术的迅猛发展,航拍图像在环境监测、城市规划、农业管理等领域的应用愈发广泛。航拍图像的高分辨率和大范围覆盖能力,使其成为获取地面信息的重要手段。然而,如何从海量的航拍图像中快速、准确地提取出有用的信息&#…

2026/7/4 14:38:55 阅读更多 →
三种剪枝算法流程

三种剪枝算法流程

剪枝算法 剪枝算法的运行流程 & 怎么算剪得好 先给你一句最核心的人话: 剪枝,就是给神经网络减肥。 目标只有两个: 把模型变小、算得更快(少参数、少计算);尽量别让模型变笨(准确率别掉太多…

2026/7/5 1:04:35 阅读更多 →

最新新闻

RevokeMsgPatcher防撤回补丁:原理、风险与Windows微信/QQ/TIM实操指南

RevokeMsgPatcher防撤回补丁:原理、风险与Windows微信/QQ/TIM实操指南

1. 项目概述:为什么我们需要一个“防撤回补丁”? 在即时通讯软件里,“消息撤回”功能设计的初衷是给用户一个纠正错误的机会,比如打错字、发错人或者一时冲动说了不合适的话。但很多时候,这个功能也带来了信息不对等的…

2026/7/5 9:28:38 阅读更多 →
Folia:全屏沉浸式在线音乐播放器,多端体验+AI 主题生成带来独特听歌感受!

Folia:全屏沉浸式在线音乐播放器,多端体验+AI 主题生成带来独特听歌感受!

Folia 是一款以全屏沉浸式歌词播放为核心的在线音乐播放器,支持多平台,具备智能歌词匹配、AI 生成配色主题等功能,为用户带来独特听歌体验。项目亮点与特色Folia 支持网易云、navidrome 和本地音乐库。其独特之处在于智能歌词匹配&#xff0c…

2026/7/5 9:26:38 阅读更多 →
SQL注入攻防全解析:从原理到实战,掌握Web安全核心漏洞

SQL注入攻防全解析:从原理到实战,掌握Web安全核心漏洞

1. 项目概述:为什么SQL漏洞是面试官的“心头好”? 干了这么多年安全,也面过不少人,我发现一个挺有意思的现象:无论你是应聘渗透测试、安全开发还是安全运维,面试官几乎都会把SQL注入漏洞拎出来问一遍。从“…

2026/7/5 9:26:37 阅读更多 →
Weex架构安卓商城APP逆向工程包:含完整源码结构、APK资源解包与AndroidX/Support双兼容支持

Weex架构安卓商城APP逆向工程包:含完整源码结构、APK资源解包与AndroidX/Support双兼容支持

本文还有配套的精品资源,点击获取 简介:一套真实上线商城App的逆向分析成果,主逻辑基于Weex框架(main.js驱动),集成weex-main-jsfm.js、weex-rax-api.js等核心运行时模块,支持RAX组件开发&am…

2026/7/5 9:20:36 阅读更多 →
山东大学编译原理PL0实验代码:Java实现的词法扫描、递归下降语法分析与P-code解释器

山东大学编译原理PL0实验代码:Java实现的词法扫描、递归下降语法分析与P-code解释器

本文还有配套的精品资源,点击获取 简介:一套开箱即用的PL/0语言编译器教学实现,基于Java开发,完整覆盖编译流程三大阶段:词法分析通过GETSYM函数识别关键字、标识符、数字和分界符;语法分析采用递归下降…

2026/7/5 9:18:36 阅读更多 →
从零部署Hermes Agent:构建可自我进化的AI智能体框架

从零部署Hermes Agent:构建可自我进化的AI智能体框架

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个能自我进化的 AI 智能体项目——Hermes Agent。它由 Nous Research 团队开源,在 GitHub 上已经获得了超过…

2026/7/5 9:18:36 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻