蓝桥杯学习笔记(贪心)

news2024/9/23 22:41:44

在很久很久以前,有几个部落居住在平原上,依次编号为1到n。第之个部落的人数为 t
有一年发生了灾荒,年轻的政治家小蓝想要说服所有部落一同应对灾荒,他能通过谈判来说服部落进行联台。
每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)。
输入描述
输入的第一行包含一个整数 1,表示部落的数量第二行包含 几个正整数,依次表示每个部落的人数。

这道题我用了两种方法 

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        int sum = 0;
        System.out.println(getMin(a, sum));

    }

    public static int getMin(int[] a, int sum) {
        if (a.length == 2) {
            return sum + a[0] + a[1];
        } else {
            Arrays.sort(a);
            int[] aa = new int[a.length - 1];
            for (int i = 2; i < a.length; i++) {
                aa[0] = a[0] + a[1];
                aa[i - 1] = a[i];
            }
            sum += aa[0];
            return getMin(aa, sum);
        }
    }
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            list.add(sc.nextInt());
        }
        Collections.sort(list);
        int sum = 0;
        while (list.size() > 1) {
            int num = list.get(0) + list.get(1);
            sum += num;
            list.remove(0);
            list.remove(0);
            list.add(num);
            Collections.sort(list);
        }
        System.out.println(sum);
    }

解题主要思想是贪心,只要搞明白之后就能理解了

循环排序 数组或集合计算前两个值之和 放入新数组 再让和累加。最后得到结果

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

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

相关文章

【软考高项】十九、项目管理概论之价值驱动的项目管理知识体系

1、项目管理知识体系概述 重点记忆项目管理涉及内容&#xff1a;12项项目管理原则-10大知识领域&#xff08;10大管理&#xff09;-8大绩效域-5类过程组-4项生命周期-价值交付系统-组织战略和目标实现 2、项目管理原则 勤勉、尊重和关心他人 ①关注组织内部和外部的职责; ②坚…

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现二

【简单介绍】 基于目标检测算法YOLOv8和灵活的PyQt5界面开发框架&#xff0c;我们精心打造了一款集直观性、易用性和功能性于一体的目标检测GUI界面。通过深度整合YOLOv8在目标识别上的卓越能力与PyQt5的精致界面设计&#xff0c;我们成功研发出一款既高效又稳定的软件GUI。 …

Unity 布局控制器Content Size Fitter

Content Size Fitter是Unity中的一种布局控制器组件&#xff0c;用于根据其内容的大小来调整包含它的UI元素的大小。换句话来说就是&#xff0c;Content Size Fitter可以根据UI元素内部内容的大小&#xff0c;自动调整UI元素的大小&#xff0c;以确保内容能够正确显示。 如下图…

基于SpringBoot+MyBatis校园周边美食探索及分享平台

采用技术 基于SpringBootMyBatis校园周边美食探索及分享平台的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 前台首页 登录页面 美食鉴赏界面…

设计模式之适配器模式解析

适配器模式 1&#xff09;概述 将一个接口转换成用户希望的另一个接口&#xff0c;使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装器(Wrapper)&#xff1b; 在适配器模式中&#xff0c;通过增加一个新的适配器类来解决接口不兼容的问题&#xff0c;使得原本没有…

聚观早报 | 全新腾势N7将上市;哪吒L将于4月上市

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月26日消息 全新腾势N7将上市 哪吒L将于4月上市 比亚迪海豹荣耀版上市 vivo X Fold3细节曝光 一加Ace 3V正式开…

51单片机学习笔记10 IIC通讯和EEPROM

51单片机学习笔记10 IIC通讯和EEPROM 一、IIC通讯简介1. 基本特点优点缺点 2. 工作模式3. 整体流程4. 信号流程**起始信号****停止信号****应答信号**非应答信号主机等待从机应答完整写入过程完整读取过程 二、AT24C02 芯片介绍1. 引脚介绍2. 典型总线配置 三、开发示例1. 硬件…

Windows如何搭建 ElasticSearch 集群

单机 & 集群 单台 Elasticsearch 服务器提供服务&#xff0c;往往都有最大的负载能力&#xff0c;超过这个阈值&#xff0c;服务器 性能就会大大降低甚至不可用&#xff0c;所以生产环境中&#xff0c;一般都是运行在指定服务器集群中。 除了负载能力&#xff0c;单点服务器…

vscode安装mysql相关插件

在Visual Studio Code (VSCode) 中安装 MySQL 客户端插件可以让你在 VSCode 中直接连接到 MySQL 数据库&#xff0c;并执行 SQL 查询。以下是如何安装和使用 MySQL 客户端插件的步骤&#xff1a; 1.打开 VSCode。 2.按下 Ctrl Shift X 打开扩展商店&#xff08;或点击侧边栏…

React Native 应用打包

引言 在将React Native应用上架至App Store时&#xff0c;除了通常的上架流程外&#xff0c;还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

200W无感厚膜电阻-SOT227模压系列大功率电阻

EAK的200W-900W的厚膜无感电阻 SOT 227封装 安装在风冷或水冷散热器上的高功率电阻器 全树脂填充结构&#xff0c;散热片与电阻之间高绝缘电压 6个不同的版本 缓冲电阻 分压器 分断电阻 EAK封装SOT-227厚膜无感功率电阻 阻值范围:0.1Ω~1MQ 精度范围:1%~士10% 温度系数:…

命令模式(请求与具体实现解耦)

目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者&#xff08;Invoker&#xff09;和命令执行者&#xff08;receiver&#xff09;&#xff0c;使得 Invoker 不再直接引用 receiver&#xff0c;而是依赖于…

【超图 SuperMap3D】【基础API使用示例】52、超图SuperMap3D - 绘制点|线|多边形面的缓冲区

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 绘制缓冲区主要依赖[turfjs](https://turfjs.org/docs/#buffer) 先根据点线面的数据turfjs计算得到缓冲区的坐标数据&#xff0c;再行绘制效果 完整代…

docker访问宿主机的localhost

前言 在我们使用docker的时候我们会发现访问宿主机的ip的地址是一件比较麻烦的事情&#xff0c;因为宿主机如果处于不同的网段中他的ip地址是在不断的改变之中&#xff0c;那么如何访问宿主机的本地地址localhost成为了一件比较麻烦的事情&#xff0c;本文就介绍一种最简单访问…

JVM篇详细分析

JVM总体图 程序计数器&#xff1a; 线程私有的&#xff0c;每个线程一份&#xff0c;内部保存字节码的行号&#xff0c;用于记录正在执行字节码指令的地址。&#xff08;可通过javap -v XX.class命令查看&#xff09; java堆&#xff1a; 线程共享的区域&#xff0c;用来保存对…

【文献分享】WimPyDD 程序:用于计算 WIMP 直接检测信号的面向对象的 Python 代码

题目&#xff1a;WimPyDD: An object–oriented Python code for the calculation of WIMP direct detection signals 链接&#xff1a;DOI: 10.1016/j.cpc.2022.108342 Program Title: WimPyDD (first release: v1.6.1) CPC Library link to program files: https://doi.…

Arcgis根据要素面获取要素中心点并计算中心点坐标

一、要素面获取要素中心点 1、加载数据 2、找到“要素转点”工具 打开ArcTool box工具&#xff0c;数据管理工具—要素—要素转点&#xff0c;或者打开搜索器直接搜索“要素转点”即可 3、要素转点 弹出转换界面之后&#xff0c;输入面状要素&#xff0c;设置保存路径&#…

《手把手教你》系列技巧篇(五十三)-java+ selenium自动化测试-上传文件-上篇(详细教程)

1.简介 在实际工作中&#xff0c;我们进行web自动化的时候&#xff0c;文件上传是很常见的操作&#xff0c;例如上传用户头像&#xff0c;上传身份证信息等。所以宏哥打算按上传文件的分类对其进行一下讲解和分享。 2.为什么selenium没有提供API&#xff1f; 想必小伙伴们或者…

OSCP靶场--Codo

OSCP靶场–Codo 考点 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.229.23 -Pn -sV -sC --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-25 05:04 EDT Nmap scan report for 192.168.229.23 Host is up (0.35s latency). Not sh…

网络七层模型之网络层:理解网络通信的架构(三)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…