华为OD机试 - 分苹果 - 二进制(Java 2023 B卷 100分)

news2024/9/24 23:29:20

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明
        • 核心算法:按照二进制加法计算,并且不计算进位。
        • 但是,B希望在满足A的情况下获取苹果重量最多。

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

A、B两个人把苹果分为两堆。

A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算进位12+5=9(1100+0101=9);

B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多。

输入苹果的数量和每个苹果重量,输出满足A的情况下B获取的苹果总重量。

如果无法满足A的要求,输出-1。

数据范围

1<=总苹果数量<=20000

1<=每个苹果重量<=10000

二、输入描述

输入第一行是苹果数量:3

输入第二行是每个苹果重量:3 5 6

三、输出描述

输出第一行是B获取的苹果总重量:11

四、解题思路

这道题的主要问题是题意的理解。

A的算法规则:按照二进制加法计算,并且不计算进位

输出满足A的情况下B获取的苹果总重量。

满足A的情况,是什么情况?

再读一遍,按照二进制加法计算,并且不计算进位。

我的理解是相加等于0就算满足A规则。

例如3 5 6。

  • 3的二进制是11;
  • 5的二进制是101;
  • 6的二进制是110;

核心算法:按照二进制加法计算,并且不计算进位。

  • 3 + 5 = 11 + 101 = 110,十进制是6;
  • 第三个也是6,即平分;

也可以理解为:

3 + 5 + 6 = 11 + 101 + 110 = 000即0,满足A算法,即平分。

A算法的核心就是异或总结果为0时,满足A算法规则。

五、Java算法源码

package com.guor.od;

import java.util.*;

public class OdTest02 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 苹果数量
        int n = Integer.parseInt(sc.nextLine());
        // 每个苹果重量
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        int sum = 0;
        int min = Integer.MAX_VALUE;
        int tempSum = 0;

        for (int i = 0; i < n; i++) {
            // B计算的苹果总数
            sum += arr[i];

            // A算法的核心就是异或总结果为0
            tempSum ^= arr[i];
            if (min > arr[i]) {
                // 找到最小的值
                min = arr[i];
            }
        }

        // 苹果可以分
        if (tempSum == 0) {
            // 则B拿到苹果数为:总数-最小数
            int bSum = sum - min;
            System.out.println(bSum);
        } else {
            // 不可以分苹果时输出 -1
            System.out.println(-1);
        }
    }
}

六、效果展示

1、输入

3
3 5 6

2、输出

11

3、说明

  • 3的二进制是11;
  • 5的二进制是101;
  • 6的二进制是110;

核心算法:按照二进制加法计算,并且不计算进位。

3 + 5 = 11 + 101 = 110,十进制是6;
第三个也是6,即平分;

也可以理解为:

3 + 5 + 6 = 11 + 101 + 110 = 000即0,满足A算法,即平分。

按照A的算法,A获得6个苹果,剩下的都归B。

一共 3 + 5 +6 = 14个苹果,A拿了6个,B得到了8个苹果。

但是,B希望在满足A的情况下获取苹果重量最多。

还有其它情况吗?

5 + 6 = 101 + 110 = 11即3,满足A算法,即平分。

哈哈,A只获得了3个苹果,B获得了11个苹果。

这也提醒了大家,千万不要在代码中炫技。十进制平分你不干,非得来个二进制不进位分苹果,哎,A亏大了。

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

企业架构LNMP学习笔记51

企业案例使用&#xff1a; 主从模式&#xff1a; 缓存集群结构示意图&#xff1a; 去实现Redis的业务分离&#xff1a; 读的请求分配到从服务器上&#xff0c;写的请求分配到主服务器上。 Redis是没有中间件来进行分离的。 是通过业务代码直接来进行读写分离。 准备两台虚…

wordpress使用category order and taxonomy terms order插件实现分类目录的拖拽排序

文章目录 引入实现效果安装插件使用插件 引入 使用docker快速搭建wordpress服务&#xff0c;并指定域名访问 上一节我们使用docker快速搭建了wordpress服务&#xff0c;可以看到基础的wordpress服务已经集成基础的用户管理、文章发布、页面编辑、文章分类等功能&#xff0c;但…

某验3空间推理验证码破解

geetest极验空间推理验证码破解 > 本篇文章仅供学习使用&#xff0c;如侵权请联系删除。某验验证码3代&#xff0c;4代已经是老生常谈的问题了&#xff0c;本篇文章粗略的分析一波3代空间推理验证码识别与验证的整个过程。 yolov识别坐标 1.参数破解 从一开始gt和challen…

【Django】掌握models.py模型文件的使用

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、models类继承&#xff08;一&#xff09;创建apps文件夹&#xff08;二&#xff09;settings.py文件配置&#xff08;三&#xff09;…

python连接mysql数据库报错pymysql.err.OperationalError

报错如下&#xff1a; 历史工程使用的是python3.6pymysqlmysql8.0 原因分析&#xff1a; 1、可能密码错误&#xff0c;通过navicat可以正常连接, 可排除 2、可能新版mysql默认使用的caching_sha2_password认证方式&#xff0c;换成mysql_native_password就可以 解决方法&am…

【今日话题】如何看待Unity收费一事,对标中小公司的从业者的该如何做

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

nowcoder NC30 缺失的第一个正整数

目录 题目描述&#xff1a; 分析&#xff1a; 完整代码&#xff1a; 题目链接&#xff1a; https://www.nowcoder.com/share/jump/819478881694767416272 题目描述&#xff1a; 给定一个无重复元素的整数数组nums&#xff0c;请你找出其中没有出现的最小的正整数 进阶&am…

常用电压基准芯片SC431BVSNT1G 应用及介绍

SC431BVSNT1G安森美深力科一款集成电路为三端子可编程并联调节二极管。这些单片IC电压参考作为低温系数齐纳工作可使用两个外部电阻器从Vref编程到36V。工作电流范围很宽&#xff0c;从40 a到100 mA典型的动态阻抗为0.22&#xff0c;2.5 V参考电压便于获得来自5.0 V逻辑电源的稳…

Python爆破shadow文件密码

原理 加密算法(明文&#xff0c;盐值) 密文 上面是shadow文件中密码的加密公式&#xff0c;我们可以用Python中的crypt()函数进行上述运算&#xff0c;如果得出的密文与原来的一致&#xff0c;说明密码爆破成功。 关于盐值和shadow文件的字段详解&#xff0c;请移步我的这篇博…

Vue-01:MVVM数据双向绑定与Vue的生命周期

一、Vue介绍 1.1 什么是Vue &#xff1f; Vue是一个渐进式的JavaScript框架&#xff0c;用于构建用户界面。"渐进式"意味着Vue的设计理念是逐步增强应用的功能和复杂性&#xff0c;而不是一次性地引入所有功能。这使得开发者可以根据项目需求选择性地使用Vue的不同特…

Rocketmq并发和顺序消费的失败重试机制

文章目录 问题并发消费触发时机客户端发起请求 CONSUMER_SEND_MSG_BACKBroker处理CONSUMER_SEND_MSG_BACK请求 顺序消费Q&A消费的时候是一批的消息, 如果其中某条消费失败了,是所有的消息都会被重试吗&#xff1f;用户可以自己控制重试次数、重试间隔时间吗?批量消费消息,…

Redis分布式锁的实现方式、实现原理

目录 一、分布式锁的重要性与挑战1.1 分布式系统中的并发问题竞态条件数据不一致死锁 二、分布式锁的基本原理与实现方式2.1 分布式锁的基本概念2.2 基于数据库的分布式锁原理与实现方式优缺点 2.3 基于缓存的分布式锁原理与实现方式优缺点 三、Redis分布式锁的实现与使用3.1 使…

elasticsearch19-数据同步

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

算法通关村第13关【黄金】| 数论问题

1.欧几里得算法 思路&#xff1a;欧几里得算法 【欧几里得演算法(辗转相除法)】 https://www.bilibili.com/video/BV19r4y127fu/?share_sourcecopy_web&vd_sourced124eda224bf54d0e3ab795c0b89dbb0 class Solution {public int findGCD(int[] nums) {int min Integer.MA…

001:vue3 实现自定义指令v-copy复制

文章目录 1. 实现效果2. vue3 注册全局自定义指令详解&#xff08;v-copy&#xff09;3. main.js 注册全局自定义指令&#xff0c;挂载到 vue 上4. 页面使用 1. 实现效果 2. vue3 注册全局自定义指令详解&#xff08;v-copy&#xff09; 在src中&#xff0c;新建 directive 文…

鸟哥的LInux私房菜 基础学习篇 第四版 学习笔记

第一章 目前被称为纯种的Unix指的是System V以及BSD这两套软件。 要实现多任务的环境&#xff0c;除了硬件&#xff08;主要是CPU&#xff09;需要能够具有多任务的特性外&#xff0c;操作系统也需要支持这个功能。 如果网络有问题时&#xff0c;去/var/log目录查日志。 第二…

基于Java的高校科研信息管理系统设计与实现(亮点:完整严谨的科研项目审批流程、多文件上传、多角色)

高校科研信息管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1…

Kafka自带zookeeper---集群安装部署

kafka简介 kafka官网&#xff1a;http://kafka.apache.org/kafka下载页面&#xff1a;http://kafka.apache.org/downloadskafka配置快速入门&#xff1a;http://kafka.apache.org/quickstart 首先让我们看几个基本的消息系统术语&#xff1a; •Kafka将消息以topic为单位进行…

STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI

SPI相关基础知识 SPI基本概念请自行百度&#xff0c;参考&#xff1a;百度百科SPI简介.我们讲重点和要注意的地方。 master模式下要关注的地方 接线一一对应 也就是说主控的MISO,MOSI,SCLK,[CSn]分别和设备的MISO,MOSI,SCLK,[CSn]一一对应相连&#xff0c;不交叉&#xff0…

Linux 本地Yearning SQL 审核平台远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…