2020年CSP-X复赛真题及题解(T4:分糖果)
2020年CSP-X复赛真题及题解T4分糖果题目背景老师组织一群孩子围成一个圈进行游戏游戏结束后老师会根据每个孩子的表现进行评分并给予糖果奖励。题目描述每个孩子只能看见与自己相邻的2 22个孩子左边的和右边的的情况只会关心相邻的且比自己评分低的同学的糖果数如果相邻2 22个孩子的评分相等则不关心。为保证公平相邻的孩子中评分高的孩子必须获得更多的糖果(如果左右相邻2 22个孩子的评分相等则不关心即分最少的糖果1 11个。同时为鼓励孩子的积极性每个孩子至少都能拿到1 11个糖果。现在需要你帮助老师来分发糖果问怎么分配才能使要准备的糖果数最少计算出需要的最少糖果数。输入格式输入有二行第一行一个正整数n nn表示孩子的个数。第二行n nn个非负整数相邻的数用空格隔开分别表示孩子的表现评分。输出格式一个整数表示最少需要准备的糖果数。输入输出样例 1输入 13 1 2 0输出 16输入输出样例 2输入 24 2 3 3 3输出 26说明/提示【数据范围】对于40 % 40\%40%的数据1 ≤ n ≤ 100 1\leq n\leq 1001≤n≤100对于100 % 100\%100%的数据1 ≤ n ≤ 10 5 1\leq n\leq 10^51≤n≤105;所有评分都是0 00到100 100100之间的一个整数。【样例解释】样例一分别分配2 , 3 , 1 2,3,12,3,1的糖果所以最少需要6 66个糖果。样例二分别分配1 , 2 , 1 , 2 1,2,1,21,2,1,2的糖果所以最少需要6 66个糖果。思路分析问题本质环形相邻约束评分高者糖果数必须严格大于评分低的邻居评分相等无约束。目标是最小化总糖果数。关键观察约束是有向的低分 → 高分且评分严格递增方向不可能形成环因此可拓扑排序处理。每个孩子的糖果数 max(1, 所有低分邻居的糖果数 1)。处理策略由于评分范围仅 0~100按评分从小到大分组处理。处理评分s的孩子时所有评分 s的邻居已经计算完毕可直接利用。对每个孩子检查左右邻居环形取模若邻居评分更低则用其糖果数1更新当前值取最大值。正确性每个孩子取的是满足所有低分邻居约束的最小值因此全局总和最小。评分相等互不影响同一轮内不会互相依赖。复杂度O(n)空间 O(n)满足 n ≤ 1e5。代码实现#includebits/stdc.husingnamespacestd;intn,a[100005],c[100005];// a:评分, c:糖果数vectorintv[105];// v[s]存储评分s的所有下标intmain(){cinn;for(inti0;in;i){cina[i];v[a[i]].push_back(i);// 按评分分组}for(ints0;s100;s){// 评分从小到大for(inti:v[s]){intl(i-1n)%n,r(i1)%n;// 左右邻居下标环形c[i]1;// 至少1个if(a[l]a[i])c[i]max(c[i],c[l]1);// 左邻评分更低则必须比它多1if(a[r]a[i])c[i]max(c[i],c[r]1);// 右邻评分更低则必须比它多1}}longlongans0;for(inti0;in;i)ansc[i];coutans;return0;}功能分析输入处理读取孩子数n和评分数组同时将每个下标按评分值存入vector方便按评分升序处理。核心计算遍历评分0~100对每个评分值下的所有孩子初始糖果为 1。检查左右相邻的孩子环形取模若其评分更低则当前孩子糖果数至少为低分邻居糖果数 1取最大值。由于评分升序处理低分邻居的糖果值已经确定保证依赖关系正确。输出结果累加所有糖果数并输出。时间复杂度O(n 101)空间 O(n)满足n ≤ 1e5的要求。更多内容请关注专栏信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转https://edu.csdn.net/course/detail/41081 点击跳转3、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.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、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.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}

相关新闻

Qwen2.5-VL行业微调:物理归一化与跨模态对齐器重训实战

Qwen2.5-VL行业微调:物理归一化与跨模态对齐器重训实战

1. 项目概述:为什么在特殊行业数据上微调Qwen2.5-VL不是“跑通就行”的事 Qwen2.5-VL是通义千问系列中首个真正意义上支持 端到端多模态理解与生成 的开源大模型,它不像早期VLM那样把图像特征硬塞进纯文本LLM的输入层,而是通过一个可学习的…

2026/6/20 6:43:19阅读更多 →
简悦4.0.2:面向深度阅读者的认知增强系统

简悦4.0.2:面向深度阅读者的认知增强系统

1. 项目概述:这不是一个“AI阅读插件”,而是一套面向深度阅读者的认知增强系统“简悦插件 阅读助手 4.0.2 版 - 已全面接入GPT 4.1最新模型”——这个标题里藏着三个被多数人忽略的关键信号:“简悦”不是通用浏览器插件,而是专注学…

2026/6/20 6:43:19阅读更多 →
DVWA靶场实战进阶:BurpSuite配置与漏洞挖掘深度解析

DVWA靶场实战进阶:BurpSuite配置与漏洞挖掘深度解析

1. 项目概述:从靶场通关到实战思维的跨越很多朋友在学Web安全时,都把DVWA(Damn Vulnerable Web Application)靶场当作“新手村”,照着教程一步步点完,看到“漏洞利用成功”的提示就以为通关了。我当年也是这…

2026/6/20 6:38:19阅读更多 →
AutoHotkey V2 如何突破脚本限制?ahk2_lib 原生扩展库实战指南

AutoHotkey V2 如何突破脚本限制?ahk2_lib 原生扩展库实战指南

AutoHotkey V2 如何突破脚本限制?ahk2_lib 原生扩展库实战指南 【免费下载链接】ahk2_lib 项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib 在 Windows 自动化开发领域,AutoHotkey V2 脚本语言凭借其简洁语法和强大功能深受开发者喜爱。然…

2026/6/20 7:53:24阅读更多 →
Playwright与LLM结合:构建智能自愈UI自动化测试框架

Playwright与LLM结合:构建智能自愈UI自动化测试框架

1. 项目概述:当UI自动化测试遇上“会思考”的AI做自动化测试的朋友,尤其是搞UI自动化的,最头疼的是什么?脚本脆弱,维护成本高。页面改个按钮ID、换个CSS选择器,甚至只是加载慢了一秒,精心编写的…

2026/6/20 7:53:24阅读更多 →
算法札记:匈牙利算法正确性证明

算法札记:匈牙利算法正确性证明

匈牙利算法(Hungarian Algorithm)通常指用于求解‌二分图最大匹配‌的算法。其正确性证明主要基于图论中的两个核心定理:‌增广路定理‌和‌Knig定理‌。以下是严谨的逻辑推导过程:1. 核心概念定义‌匹配 (Matching)‌&#xff1a…

2026/6/20 7:53:24阅读更多 →
MC9S12 BDM硬件握手协议与ACK脉冲机制深度解析

MC9S12 BDM硬件握手协议与ACK脉冲机制深度解析

1. 项目概述:为什么我们需要硬件握手协议?在嵌入式开发,尤其是汽车电子和工业控制领域,调试一个“黑盒”运行的微控制器(MCU)是家常便饭。当你的代码在芯片内部全速狂奔,而你需要窥探内存、设置…

2026/6/20 7:53:24阅读更多 →
深入解析NXP LH7A404 SoC:从电气特性到功耗管理的嵌入式设计实战

深入解析NXP LH7A404 SoC:从电气特性到功耗管理的嵌入式设计实战

1. LH7A404 SoC:嵌入式系统的心脏与骨架在嵌入式硬件设计的江湖里,选对一颗“心脏”——也就是系统级芯片(SoC)——往往决定了整个项目的成败。这颗心脏不仅要强劲有力(性能足够),还得懂得精打细…

2026/6/20 7:53:24阅读更多 →
终极屏幕翻译工具使用指南:5分钟快速上手开源翻译软件

终极屏幕翻译工具使用指南:5分钟快速上手开源翻译软件

终极屏幕翻译工具使用指南:5分钟快速上手开源翻译软件 【免费下载链接】ScreenTranslator Screen capture, OCR and translation tool. 项目地址: https://gitcode.com/gh_mirrors/sc/ScreenTranslator 想要实现屏幕文字即时翻译吗?Screen Transl…

2026/6/20 7:48:24阅读更多 →
【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/20 0:02:40阅读更多 →
MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

1. 项目概述与核心价值在嵌入式开发,尤其是电机驱动、LED调光、开关电源这些需要精确控制“能量”的领域,脉冲宽度调制(PWM)技术是工程师手中的一把瑞士军刀。它的本质很简单:用一个固定频率的方波,通过改变…

2026/6/20 0:02:40阅读更多 →
在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

1. 银河麒麟V10桌面系统与软RAID 1基础认知 第一次在银河麒麟V10桌面上折腾软RAID 1时,我踩了不少坑。这个国产操作系统基于Linux内核,但2205版本对软RAID模块做了特殊处理,需要额外操作才能正常使用。软RAID 1其实就是磁盘镜像技术&#xff…

2026/6/20 0:02:40阅读更多 →