news 2026/5/9 11:19:48

打卡信奥刷题(3234)用C++实现信奥题 P8446 虹色的北斗七星

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(3234)用C++实现信奥题 P8446 虹色的北斗七星

P8446 虹色的北斗七星

题目背景

【题目背景与题意无关,可以直接阅读题目描述】

(本题目背景部分改编自真实案例)

宇佐见莲子是外界的一名大学生,在京都的一所大学中专攻超统一物理学,最近在做弦论方面的研究。

莲子与梅莉一同经营着名为秘封俱乐部的社团。进行着在科学世纪探寻遍布四处的结界的活动。

这个月梅莉和莲子又商量着去进行新一轮的探索与发现与贴贴,但是在两人手牵手出门的时候甜腻腻的气氛却被一通电话打破。

莲子因为经常外出探险,同时与梅莉增进感情交流,所以作业一拖再拖。她的物理学教授忍无可忍(毕竟莲子可是拖了一个学期的物理作业一个字都没有动呢),规定她必须在9\sqrt99天之内交上一篇学习报告,然后才同意给她的“课外实践活动”报备。

这可就没有办法了呢(笑),莲子只好先努力在 deadline 之前糊弄完她的学习报告,然后才能执行她们观赏夜空的计划。

题目描述

由于前两天都被莲子用来进行活动的筹备工作了,所以现在她只有几分钟的时间糊弄作业。尽管这样不太好,但是她别无选择,只能从之前的课堂笔记中摘取一段内容。

莲子的课堂笔记共有nnn章,每章分别记着不同的内容。她可以选择其中任意连续的一段[l,r][l,r][l,r](表示选取了第lll章到第rrr章)作为最终的成果。

每一章的内容各不相同,老师对每章内容有一个评价分aia_iai。因为学习报告要体现出学生的进步,所以老师的满意度将会加上其中最差(min⁡{ai}\min\{a_i\}min{ai})和最好章节(max⁡{ai}\max\{a_i\}max{ai})的评价分差距。因为直接把冗长的课堂笔记作为报告提交显得太敷衍,所以每存在一章内容,老师的满意度就会−1-11

形式化地来说,如果莲子提交了[l,r][l,r][l,r]这一段区间的笔记,老师的满意度将会是max⁡{al,al+1,⋯ ,ar}−min⁡{al,al+1,⋯ ,ar}−(r−l+1)\max\{a_l,a_{l+1},\cdots,a_r\}-\min\{a_l,a_{l+1},\cdots,a_r\}-(r-l+1)max{al,al+1,,ar}min{al,al+1,,ar}(rl+1)

莲子希望你能帮她找出一种使得老师的满意度最大的方案。因为她非常聪明,所以只需要你告诉她这个最大的满意度,她就会知道应该怎么做。

【形式化题意】

你有一个长度为nnn的序列aaa,它的一个区间[l,r][l,r][l,r]的价值是max⁡{al,al+1,⋯ ,ar}−min⁡{al,al+1,⋯ ,ar}−r+l−1\max\{a_l,a_{l+1},\cdots,a_r\}-\min\{a_l,a_{l+1},\cdots,a_r\}-r+l-1max{al,al+1,,ar}min{al,al+1,,ar}r+l1。求这个序列价值最大的子区间并输出这个价值。

输入格式

第一行输入一个正整数nnn,表示笔记的章节数。

第二行输入评价分序列aaa,以空格隔开每一个元素。

输出格式

输出这个评价分序列中,老师满意度最大的子区间的满意度。

输入输出样例 #1

输入 #1

6 5 2 4 2 8 8

输出 #1

4

说明/提示

【样例解释和说明】

l=4,r=5l=4,r=5l=4,r=5,则有min⁡{a4,a5}=2\min\{a_4,a_5\}=2min{a4,a5}=2max⁡{a4,a5}=8\max\{a_4,a_5\}=8max{a4,a5}=8,贡献值为444。易证这是满意度最大的子区间。

【数据范围】

  • 对于20%20\%20%的数据,n≤5×103n\leq 5\times 10^3n5×103
  • 另有20%20\%20%的数据,所有的aia_iai都相等。
  • 对于100%100\%100%的数据,1≤n≤4×1061\le n\le 4\times10^61n4×1061≤ai≤1091 \leq a_i \leq 10^91ai109

C++实现

#include<bits/stdc++.h>#defineN4000005#definelllonglongusingnamespacestd;intn,a[N],b[N],ans=-1;inlineintread(){intx=0,f=1;charch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}returnx*f;}intmain(){n=read();for(inti=1;i<=n;i++)a[i]=read(),b[i]=a[i]-i;for(inti=1,mn=1e9;i<=n;i++){mn=min(b[i],mn);ans=max(ans,b[i]-mn);b[i]=a[i]+i;}for(inti=1,mx=-1e9;i<=n;i++){mx=max(b[i],mx);ans=max(ans,mx-b[i]);}cout<<ans-1;return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

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

Java并发编程:从基础到实战的技术探索

引言 在当今高并发、高性能的软件开发需求下&#xff0c;Java作为一门成熟且广泛应用的编程语言&#xff0c;其并发编程特性显得尤为重要。掌握Java并发编程能够帮助开发者充分利用多核CPU的计算能力&#xff0c;提高程序的执行效率和响应速度。本文将深入探讨Java并发编程的基…

作者头像 李华
网站建设 2026/5/9 11:16:39

AI API中转站选型实战:token5u接入、平台对比与代码示例

做大模型应用时&#xff0c;API 中转站通常不是第一个被讨论的问题&#xff0c;但它很快会影响开发效率。模型要切换&#xff0c;网络要稳定&#xff0c;账单要可控&#xff0c;SDK 最好不要重写。对读者来说&#xff0c;空泛推荐意义不大&#xff0c;能跑起来、能迁移、能排障…

作者头像 李华
网站建设 2026/5/9 11:14:46

免费海报制作神器:创客贴、AIPPT等6款AI在线设计软件横向评测

免费海报制作工具深度测评&#xff1a;6款高效设计软件推荐 在数字化营销与日常办公中&#xff0c;一张视觉精美的海报往往是吸引关注、传达信息的关键。然而&#xff0c;面对“免费海报制作”这一需求&#xff0c;许多用户常常陷入两难&#xff1a;完全免费的工具往往带有水印…

作者头像 李华
网站建设 2026/5/9 11:12:50

如何5分钟搞定抖音无水印视频下载:douyin-downloader完整指南

如何5分钟搞定抖音无水印视频下载&#xff1a;douyin-downloader完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…

作者头像 李华
网站建设 2026/5/9 11:12:47

3D高斯泼溅优化:多项式核函数与高效剔除算法

1. 3D高斯泼溅技术背景与挑战在实时神经渲染领域&#xff0c;3D高斯泼溅(3D Gaussian Splatting, 3DGS)已成为近年来最具突破性的技术之一。这项技术通过将场景表示为大量各向异性高斯基元的集合&#xff0c;实现了高质量的实时渲染效果。每个高斯基元包含位置(μ)、协方差矩阵…

作者头像 李华
网站建设 2026/5/9 11:10:30

Zotero中文文献识别难题终结者:Jasminum插件深度解析

Zotero中文文献识别难题终结者&#xff1a;Jasminum插件深度解析 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 告别乱码与信息缺…

作者头像 李华