【C++题解】[广州大学附属中学-AKCSP2022信心联考]数组树

news2025/4/19 14:45:36

P a r t Part Part 1 1 1 读题

题目描述

w g y wgy wgy n n n个很不错的数,第 i i i个数是 a i a_i ai,他想用它们组一棵数树送给 a y b ayb ayb

a y b ayb ayb对一棵数树的喜爱程度是这棵数树的每个子树包含的数的和的总和。简单来说, a y b ayb ayb对一棵数树的喜爱程度是这样计算的: s u m 1 + s u m 2 + s u m 3 + … + s u m n sum_1+sum_2+sum_3+…+sum_n sum1+sum2+sum3++sumn,其中 s u m u sum_u sumu表示以 u u u为根的子树的数和。

为了令 a y b ayb ayb最开心, w g y wgy wgy想组出一棵他喜爱程度最高的数树。但是 w g y wgy wgy太笨了,你能帮助 w g y wgy wgy吗?

输入格式

第一行一个整数 n n n

接下来一行 n n n个整数,表示 w g y wgy wgy手里的数 a i a_i ai

输出格式

一行,一个整数表示最高的喜爱程度。

输入样例

2
1 2

输出样例

5

数据范围与提示

对于 20 % 20\% 20%的数据, n ≤ 100 n≤100 n100

对于 100 % 100\% 100%的数据, 1 ≤ n ≤ 1 0 5 1≤n≤10^5 1n105 1 ≤ a i ≤ 1 0 7 1≤a_i≤10^7 1ai107

P a r t Part Part 2 2 2 思路

本题看似很难,甚至可能都理解不了题意(例如题目中的“ s u m u sum_u sumu表示以 u u u为根的子树的数和”)。但是仔细想想,实际上就变得简单了许多。我们分析一下。

我们思考一下,在什么状态下,喜爱程度能达到最高。可能文字大家不能理解,我这里用几幅图来表示。
cmd-markdown-logo
可以发现,图一的喜爱程度为 1 + 2 + 3 = 6 1+2+3=6 1+2+3=6,图二的喜爱程度为 ( 1 + 2 + 3 ) + ( 2 + 3 ) + 3 = 14 (1+2+3)+(2+3)+3=14 (1+2+3)+(2+3)+3=14,图三的喜爱程度为 ( 3 + 2 + 1 ) + ( 2 + 1 ) + 1 = 10 (3+2+1)+(2+1)+1=10 (3+2+1)+(2+1)+1=10。很明显,图二的喜爱程度是最高的。同时,我们也可以推出喜爱程度的计算方法: s + = a [ i ] × a [ i ] s+=a[i]\times a[i] s+=a[i]×a[i](这里也可以写 i i i,此处 s s s代表喜爱程度总和)

由此,我们可以得出一个规律:在竖状且从小到大排序的情况下,喜爱程度是最高的。在输入后,我们需要先进行排序(冒泡排序、选择排序、 s o r t sort sort快速排序都可以),然后算出喜爱程度就可以了。也就是如下代码:

sort(a+1,a+1+n);//此处采用sort快排
for(int i=1;i<=n;i++)s+=i*a[i];//此处i、a[i]都可以用

然后我们再加上定义、输入和输出就可以啦!

小tip:大家可以先根据思路,写一下代码哦!

P a r t Part Part 3 3 3 代码

注意!!!我这里提供 s o r t sort sort快速排序,其他排序方法大家自行修改 s o r t sort sort部分

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,a[100005],s;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+1+n);//此处采用sort快排
	for(int i=1;i<=n;i++)s+=i*a[i];//此处i、a[i]都可以用
	cout<<s;
	return 0;
}

听完后,是不是觉得很简单呢?赶快自己去试一下吧!!!

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

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

相关文章

【数据结构与算法系列1】 二分法查找

给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释: 9 出现…

软件与软件工程

软件 软件的概念以及特点&#xff1a; 软件是计算机系统中不可或缺的一部分&#xff0c;与硬件共同构成特定的系统功能。 人们通常把各种不同功能的程序&#xff0c;包括系统程序、应用程序、用户自己编写的程序等称为软件 软件的概念: 软件不仅包括程序&#xff0c;还包括程序…

Linux环境下的内存管理(2/7)

要想深入理解内存中的堆栈管理机制&#xff0c;孤立地分析并不是一个好方法&#xff0c;因为堆栈内存不是仅靠程序本身来维护的&#xff0c;而是由操作系统、编译器、CPU、物理内存相互配合实现的。 在 Linux 环境下运行的程序&#xff0c;在编译时链接的起始地址都是相同的&a…

vue左侧漏斗切换 echart图表动态更新

这个需求是根据点击左侧的箭头部分&#xff0c;右侧图表切换&#xff0c;左侧选中数据高亮&#xff08;图片用的svg&#xff09; 一、效果图 二、vue组件 <template><div class"funnel_wrap"><div class"flex_between"><div class&q…

家政服务小程序制作教程:从设计到开发的详细步骤

在当今的数字化时代&#xff0c;小程序已经成为了一种趋势&#xff0c;不仅提供了方便快捷的应用体验&#xff0c;也成为了各种行业进行营销和客户管理的有力工具。特别是对于家政行业&#xff0c;通过小程序的应用&#xff0c;可以更好地进行业务管理&#xff0c;提升服务质量…

自动化PLC工程师能否转到c#上位机开发?

成功从自动化PLC工程师转向C#上位机开发的经历可能因人而异&#xff0c;以下是一些分享的思路和建议&#xff1a;扩展编程技能&#xff1a;学习C#语言和相关的开发工具和框架&#xff0c;掌握语言的基础知识和常用的编程技巧。可以通过在线教程、培训课程、书籍等途径进行学习&…

深度学习-4-二维目标检测-YOLOv3理论模型

单阶段目标检测模型YOLOv3 R-CNN系列算法需要先产生候选区域&#xff0c;再对候选区域做分类和位置坐标的预测&#xff0c;这类算法被称为两阶段目标检测算法。近几年&#xff0c;很多研究人员相继提出一系列单阶段的检测算法&#xff0c;只需要一个网络即可同时产生候选区域并…

基于数据湖的多流拼接方案-HUDI实操篇

目录 一、前情提要 二、代码Demo &#xff08;一&#xff09;多写问题 &#xff08;二&#xff09;如果要两个流写一个表&#xff0c;这种情况怎么处理&#xff1f; &#xff08;三&#xff09;测试结果 三、后序 一、前情提要 基于数据湖对两条实时流进行拼接&#xff0…

AI代码生成辅助工具

有许多AI代码生成辅助工具和平台可用&#xff0c;它们可以帮助开发人员生成、优化和理解代码。以下是一些常见的AI代码生成辅助工具&#xff0c;以及它们的特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交…

大规模网络爬虫系统架构设计 - 云计算和Docker部署

在大规模网络爬虫系统中&#xff0c;合理的架构设计和高效的部署方式是确保系统稳定性和可扩展性的关键。本文将介绍如何利用云计算和Docker技术进行大规模网络爬虫系统的架构设计和部署&#xff0c;帮助你构建高效、可靠的爬虫系统。 1、架构设计原则 在设计大规模网络爬虫系…

字符设备驱动(内核态用户态内存交互)

前言 内核驱动&#xff1a;运行在内核态的动态模块&#xff0c;遵循内核模块框架接口&#xff0c;更倾向于插件。 应用程序&#xff1a;运行在用户态的进程。 应用程序与内核驱动交互通过既定接口&#xff0c;内核态和用户态访问依然遵循内核既定接口。 环境搭建 系统&#…

安防监控视频平台EasyCVR视频汇聚平台调用接口出现跨域现象的问题解决方案

视频监控汇聚EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视…

科技云报道:软件供应链安全如此重要,但为什么难以解决?

科技云报道原创。 软件供应链安全如今已经成了一个世界性难题。从2021年底Apache Log4j“核弹级”风险爆发&#xff0c;时至今日影响仍然存在&#xff0c;保障软件供应链安全已成为业界关注焦点。 但近2年时间过去了&#xff0c;软件供应链安全问题似乎并没有得以缓解&#x…

微服务事务管理(Dubbo)

Seata 是什么 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 一、示例架构说明 可在此查看本示例完整代码地址&#x…

FreeSWITCH 1.10.10 简单图形化界面6 - 配置讯时网关落地

FreeSWITCH 1.10.10 简单图形化界面6 - 配置讯时网关落地 0、 界面预览1、 创建一个话务台2、 创建PBX SIP中继并设置呼入权限3、 设置呼叫权限4、 设置分机呼出权限5、 设置FXO 网关相关信息6、 设置FXO网关呼叫路由&#xff08;呼入及呼出&#xff09;7、 查看SIP中继状态 0、…

研磨设计模式day15策略模式

场景 问题描述 经常会有这样的需要&#xff0c;在不同的时候&#xff0c;要使用不同的计算方式。 解决方案 策略模式 定义&#xff1a; 解决思路&#xff1a;

HEGERLS智能四向穿梭车是如何解决机械制造领域内SKU种类复杂且量多的问题?

伴随着电子商务和智能制造技术的快速发展&#xff0c;对于自动化立体仓库系统、密集存储系统、自动输送系统、自动识别系统、无线通讯系统、条码扫描、手持终端及其系统集成的需求急剧增加&#xff0c;物流装备系统密集化、自动化、智能化、绿色环保等技术特征日益明显。密集存…

简单的springboot应用部署后内存占用量过大问题排查

1.问题背景 需要部署一个演示环境。所有组件都要部署到一台服务器&#xff0c;采用Docker容器部署&#xff0c;发现多个简单的springboot应用占用内存高达2G&#xff0c;后续的应用因为内存不足就部署不了了。排查下内存占用大的原因&#xff1a; docker stats命令&#xff1a…

ucharts修改ToolTip边框阴影文字居中

ucharts修改ToolTip边框阴影文字居中 效果 Demo 链接&#xff1a; https://pan.baidu.com/s/1k0FxmBPKAHlHksFR3YQSlQ 提取码&#xff1a;ytv7

在vue.config.js中配置文件路径代理名

今天在公司项目中看到一个非常有趣的导入路径 crud 先是一蒙 这是个啥 突然想起一个被自己遗漏的知识点 在vue.config.js中配置路径指向 这里 我们随便找一个vue项目 在src下找到 components 目录 如果没有就创建一个 下面找到HelloWorld.vue 如果没有也是自己创建一个就好 然…