洛谷 B4413:[GESP202509 三级] 数组清零

news/2025/11/19 20:05:15/文章来源:https://www.cnblogs.com/triwa/p/19243869

【题目来源】
https://www.luogu.com.cn/problem/B4413

【题目描述】
小 A 有一个由 n 个非负整数构成的数组 a=[a1, a2, …, an]。他会对阵组 a 重复进行以下操作,直到数组 a 只包含 0。在一次操作中,小 A 会依次完成以下三个步骤:
(1)在数组 a 中找到最大的整数,记其下标为 k。如果有多个最大值,那么选择其中下标最大的。
(2)从数组 a 所有不为零的整数中找到最小的整数 aj。
(3)将第一步找出的 ak 减去 aj。
例如,数组 a=[2,3,4] 需要 7 次操作变成 [0,0,0]:
[2,3,4]→[2,3,2]→[2,1,2]→[2,1,1]→[1,1,1]→[1,1,0]→[1,0,0]→[0,0,0]
小 A 想知道,对于给定的数组 a,需要多少次操作才能使得 a 中的整数全部变成 0。可以证明,a 中整数必然可以在有限次操作后全部变成 0。你能帮他计算出答案吗?

【输入格式】
第一行,一个正整数 n,表示数组 a 的长度。
第二行,n 个非负整数 a1, a2, …, an,表示数组 a 中的整数。

【输出格式】
一行,一个正整数,表示 a 中整数全部变成 0 所需要的操作次数。​​​​​​​

【输入样例一】
3
2 3 4

【输出样例一】
7

【输入样例二】
5
1 3 2 2 5

【输出样例二】
13

【数据范围】
对于所有测试点,保证 1≤n≤100,0≤ai≤100。

【算法分析】
终止条件‌:当数组中的最大值变为 0 时,说明所有元素都已为 0。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=105;
int a[maxn];
int cnt;int main() {int n;cin>>n;for(int i=1; i<=n; i++) {cin>>a[i];}while(1) {int p=n; //max-value's positionfor(int i=1; i<=n; i++) {if(a[i]>=a[p]) p=i;}if(a[p]==0) break;int t=a[p]; //min-valuefor(int i=1; i<=n; i++) {if(a[i]!=0) t=min(t,a[i]);}a[p]-=t;cnt++;}cout<<cnt<<endl;return 0;
}/*
in:
5
1 3 2 2 5out:
13
*/





【参考文献】
https://www.luogu.com.cn/problem/solution/B4413
https://gesp.ccf.org.cn/101/attach/1703975921385504.pdf


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/970345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MOSHELL (7) : 构建3G RNC端到端性能可观测性体系 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

中大型超市智能运营导购系统:AI 精准推送,滞销品库存加速 19%!

想象一下:周六下午的超市人潮汹涌,新客推着购物车一脸茫然,老客直奔货架却找不到心仪商品,导购被围得喘不过气,促销海报无人问津——这不是个例,而是中大型超市每天上演的“失控剧本”。中大型超市每天面对的痛点…

雨水从黑云降临到了人间 果实脱落枝叶吸收于地面 时间流逝再也回不到从前 曾经珍藏回忆变成不可逆爱恋

test42 寻雾启示 首先最终的走法一定是找到位置序列 \(p_1,\dots,p_m\) 满足 \(p_i<p_{i+1},p_m=n\) 然后依次铺羊毛到 \(p_i\),为了不思考那么多,我们设 \(f_i\) 表示铺到 \(i\) 回到 \(1\) 的最小时间,转移显然…

高州市胃癌手术专家选择指南:茂名陈医生专业医学背景+丰富临床经验+精湛手术技术!

高州市胃癌手术专家选择指南:茂名陈医生专业医学背景+丰富临床经验+精湛手术技术!随着胃癌发病率上升,寻找一位技术精湛、经验丰富的胃癌手术专家成为茂名高州地区患者及家属的核心诉求。面对“专家信息难辨”、“技…

c#构建日报

日期​ 2005.11.19 今日工作时长​ 360 分钟​ 核心工作内容​ 执行 GitHub 项目分支变基操作(git rebase),解决代码冲突后推进变基流程;​ 处理多人协作中远程分支更新导致的本地代码同步问题;​ 恢复误操作丢失…

linux ftp 修改密码

在 Linux 系统中,FTP(File Transfer Protocol) 本身并不是一个直接支持修改用户密码的协议。通常,FTP 服务器(如 vsftpd、ProFTPD 等)会通过配置文件(如 /etc/vsftpd.conf 或 /etc/proftpd/proftpd.conf)来管理…

linux ftp shell

你提到的“Linux FTP Shell”可能是指在 Linux 系统中使用 FTP(File Transfer Protocol)进行文件传输的 Shell 脚本或命令。下面我将为你提供一些常见的 Linux FTP 命令和 Shell 脚本示例,用于在 Linux 系统中进行文…

我讨厌 DP 和 COUNT 的100个理由(下)

好耶!是长篇!51 王之钦定 感觉比较困难。

详细介绍:数组初阶(2)

详细介绍:数组初阶(2)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

Gemini 3 Pro入门教程:从零开始学会使用最新gemini-3-pro-preview API接入

Gemini 3 Pro入门教程:从零开始学会使用最新gemini-3-pro-preview API接入Gemini 3 是 Google 发布的新一代大型多模态模型(LLM),代表了其在 推理(reasoning)、多模态理解、agent 能力 和 编程协作 等方面的重要…

20232314 2025-2026-1 《网络与系统攻防技术》实验七实验报告

一、实验内容 (1)简单应用SET工具建立冒名网站。 (2)ettercap DNS spoof。 (3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站。 二、实验过程 (1)简单应用SET工具建立冒名网站。查看虚拟机ip。root账户…

高州市陈郁强副主任擅长做肠癌手术:口碑优秀+医术高超!

高州市陈郁强副主任擅长做肠癌手术:口碑优秀+医术高超!近年来,肠癌作为粤西地区常见的消化道恶性肿瘤之一,发病率持续上升。高州地区不少患者在确诊肠癌后,常面临“专家信息不透明”“手术技术不了解”“就医路径…

102302156 李子贤 数据采集第三次作业

作业1 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。 –务必控制总页数(学号尾数2位)、总下载的图片数量(尾数后3位)等限…

SHELL脚本的基础入门

一、背景知识 1.脚本语言 脚本语言区别于编译语言的最大特征,就是不需要编译,例如Python、JS、Perl,当然也包括本课程重点讲述的 Shell,它们都是不需要编译的解释性编程语言。 下表罗列了一些常见的编程语言的类别…

roocode_kilocode对比

kilo 版本 4.119.4 2.roocode 版本 3.33.1大模型 glm-4.6 kilo code用HTML、CSS和JavaScript(若更偏好p5.js也可选用),创建一个带有动画效果的天气卡片。要在卡片里呈现当前温度、具体位置以及天气状况,像晴天、雨天…

工程成本管理软件新纪元:选软件看这三点!

随着建筑行业利润空间持续收窄,工程成本管理已从传统的记账核算向全过程精细化管理转变。行业数据显示,2025年有超过80%的施工企业将“动态成本管控能力”列为核心竞争力。面对市场上众多的工程成本管理软件,如何选…

全国计算机等级考试——二级JAVA完整大题题库【五十三道】

全国计算机等级考试——二级JAVA完整大题题库【五十三道】全国计算机等级考试——二级JAVA完整大题题库【五十三道】全国计算机等级考试二级 JAVA 题目内容 编写于2023.04.10 分为40道选择题和3道大题(大题是程序填空…

【C + +】unordered_set 和 unordered_map 的用法、区别、性能全解析 - 实践

【C + +】unordered_set 和 unordered_map 的用法、区别、性能全解析 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

Spring AI 代码分析(一)--工程结构

Spring AI 工程分析文档 请关注微信公众号:阿呆-bot 1. 工程结构概览 Spring AI 是一个大型的多模块 Maven 项目,采用模块化设计,主要分为核心模块、模型实现、向量存储、自动配置等几大类。下面我们来看看主要的目…

Spring Boot迅速集成MiniMax、CosyVoice实现文本转语音

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …