工号不够用了怎么办? - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷)最新题库【超值优惠】Java/Python/C++合集

华为od机试

题目描述

3020年,空间通信集团的员工人数数量突破20亿,现有工号系统不够用的窘境。

现在,请你负责调研新工号系统。继承历史传统,新工号系统由小写英文字母(a-z)和数字(0-9)两部分构成。

新工号分一段英文字符开头,之后跟着一段数字,例如"aaaahw0001",“a12345”,“abcd1”,“a00”。

注意新工号数字不能全字母或者数字,允许数字部分有前导0或者全为0。

但是过长的工号会增加同事们的记忆成本,现给出新工号至少需要分配的人数X和新工号中字母的长度Y,求新工号中数字的最短长度Z。

输入描述

一行两个非负整数X和Y,代表字母单个字母空间总数。

0 <= X <= 2^50 - 1

0 < Y <= 5

输出描述

输出新工号中数字部分的最短长度。

示例1

输入:
260 1输出:
1

示例2

输入:
26 1输出:
1说明:
数字长度不能为0

题解

这道题的目的是在给定新工号分配的员工数量 X 和字母长度 Y 的情况下,求出数字部分的最短长度 Z

解题思路
  1. 字母部分的组合数量: 由于字母只能是小写英文字母(a-z),总共有26个字母,因此字母部分的总数可以表示为 2 6 Y 26^Y 26Y
  2. 数字部分的组合数量: 数字部分可以由任意位数的数字组成,且数字部分可以有前导0,因此对于Z位数字,总共有 1 0 Z 10^Z 10Z 种组合。
  3. 目标: 总的工号数应该满足能分配给至少 X 个员工,所以要找出一个最小的 Z,使得字母部分和数字部分的组合数量 2 6 Y × 1 0 Z 26^Y \times 10^Z 26Y×10Z 不小于 X
  4. 二分查找: 我们可以用二分法来快速找到数字部分的最小长度 Z。初始的搜索区间为 [0, 20],然后逐步缩小区间,通过判断 2 6 Y × 1 0 Z 26^Y \times 10^Z 26Y×10Z 是否大于等于 X 来更新搜索区间。
时间复杂度

二分查找的时间复杂度为 O(log⁡Z),由于最大搜索区间为20,因此时间复杂度接近常数时间。

Java

import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static boolean ok(long x, int y, int z) {// 判断26^y * 10^z 是否大于等于 Xreturn Math.pow(26, y) * Math.pow(10, z) >= x;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);long x = scanner.nextLong();int y = scanner.nextInt();int left = 0, right = 20;while (left + 1 < right) {int mid = (left + right) / 2;if (ok(x, y, mid)) {right = mid;} else {left = mid;}}System.out.println(right);}
}

Python

import mathdef ok(x, y, z):# 判断26^y * 10^z 是否大于等于 Xreturn math.pow(26, y) * math.pow(10, z) >= xdef main():x, y = map(int, input().split())left, right = 0, 20while left + 1 < right:mid = (left + right) // 2if ok(x, y, mid):right = midelse:left = midprint(right)if __name__ == "__main__":main()

C++

#include <bits/stdc++.h>
using namespace std;bool ok(long long x, int y, int z)
{// 判断26^y * 10^z 是否大于等于 Xreturn pow(26, y) * pow(10, z) >= x;
}int main()
{long long x;int       y;cin >> x >> y;int left = 0, right = 20;while (left + 1 < right) {int mid = (left + right) / 2;if (ok(x, y, mid)) {right = mid;} else {left = mid;}}cout << right << endl;
}

希望这个专栏不仅能帮您成功通过华为机试,还能让您熟练掌握算法。

整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法&#xff0c;本次使用了触觉智能的EVB3588开发板演示&#xff0c;搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计&#xff0c;为工业场景设计研发的模块化产品&#xff0c;10年以上稳定供货,帮助…

Selenium实现滑动滑块验证码验证!

背景&#xff1a;在部分的登录中有滑动验证码的验证&#xff0c;由于滑动验证码的缺块是随机的就导致实现起来比较困难&#xff01; 01、实现方案 模板匹配 通过openCV分析两个图片的相似度&#xff0c;获取两个相似度很高图片的坐标&#xff0c;从而计算两个图片的距离。 轮…

医学数据分析实训 项目九 糖尿病风险预测

文章目录 综合实践二 糖尿病遗传风险预测一、分析目标二、实现步骤三、数据准备四、特征工程五、模型构建六、性能度量七、提交要求 综合实践任务二 糖尿病遗传风险预测代码&#xff08;一&#xff09;数据准备&#xff08;二&#xff09;特征工程&#xff08;三&#xff09;模…

云原生(Cloud Native)简介及相关技术

云原生&#xff08;Cloud Native&#xff09;简介及相关技术 什么是云原生&#xff1f; 云原生&#xff08;Cloud Native&#xff09;是一种设计和开发应用程序的方法&#xff0c;旨在充分利用云计算的弹性、可扩展性和分布式架构优势。通过采用微服务架构、容器化、持续集成…

vscode软件在 C发中常用插件

一. 简介 本文简单介绍一下&#xff0c;当做 C开发时 vscode软件常用的插件。 vscode软件是 微软公司目前提供的一款免费的开发软件&#xff0c;可以通过 vscode官网下载 vscode。 二. vscode软件在 C开发中常用插件 注意&#xff1a;vscode软件安装后&#xff0c;可以直接…

【Canvas与诗词】《登科后》唐.孟郊

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>昔日龌龊不足夸</title><style type"text/css"&g…

算法知识点———并查集

并查集是一种用于管理元素所属集合的数据结构&#xff0c;实现为一个森林&#xff0c;其中每棵树表示一个集合&#xff0c;树中的节点表示对应集合中的元素。并查集支持两种操作&#xff1a; 合并&#xff08;Union&#xff09;&#xff1a;合并两个元素所属集合&#xff08;合…

OpenAI o1碎片化过程中探索与利用的泛化

在上一篇《OpenAI o1&#xff1a;隐含在训练与推理间的动态泛化与流形分布》笔记里尝试剖析OpenAI o1内部机理的过程中我们将目光聚焦在了「模型从训练到推理两个阶段的动态渐进与平衡」之上&#xff0c;并将其等价于对long reasoning chain&#xff08;长程推理链&步骤&am…

【重学 MySQL】三十四、加密与解密函数

【重学 MySQL】三十四、加密与解密函数 在 MySQL 中&#xff0c;加密与解密函数是保护数据安全的重要手段&#xff0c;它们允许开发者在存储和传输敏感数据时保持数据的保密性。 函数名描述返回值类型备注AES_ENCRYPT(str, key_str)使用 AES 算法加密字符串BLOB返回加密后的二…

梯度的定义是什么?一阶梯度、二阶梯度对应的优化器是什么?

梯度 梯度的定义一阶梯度、二阶梯度对应的优化器 梯度的定义 梯度的定义主要出现在多元函数的微分学中&#xff0c;是一个向量场&#xff0c;表示某一函数在该点处的方向导数沿着该方向取得最大值&#xff0c;即函数在该点处沿着该方向&#xff08;此梯度的方向&#xff09;变…

好用的网页翻译插件

软件介绍 「火山翻译&#xff0c;开箱即用免配置&#xff0c;完全免费无广告&#xff0c;开发的多语言翻译插件&#xff0c;基本涵盖众多小语种及国际通用语言的翻译&#xff0c;支持网页一键翻译、划词翻译、英语词典、生词本、吐司弹词记忆等丰富能力。 下载方式 请看文章…

Red Hat 和 Debian Linux 对比

原图的作者(https://bbs.deepin.org/post/209759) Red Hat Enterprise Linux https://www.redhat.com/ CentOS Linux https://www.centos.org/ Fedora Linux https://fedoraproject.org/ Debian https://www.debian.org/ Ubuntu https://cn.ubuntu.com/ https://ubuntu.c…

Python “字符串操作” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

本文主要是作为Python中列表的一些题目&#xff0c;方便学习完Python的元组之后进行一些知识检验&#xff0c;感兴趣的小伙伴可以试一试&#xff0c;含选择题、判断题、实战题、填空题&#xff0c;答案在第五章。 在做题之前可以先学习或者温习一下Python的列表&#xff0c;推荐…

[数据集][目标检测]文本表格检测数据集VOC+YOLO格式6688张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6688 标注数量(xml文件个数)&#xff1a;6688 标注数量(txt文件个数)&#xff1a;6688 标注…

<<编码>> 第 14 章 反馈与触发器(5)--加法器综合 示例电路

带锁存器和选择器的 8 位加法器 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 当 “来自锁存器” 位为 0 时, 选择 A; 否则, 选择锁存器的输出 注: 保存位 和 来自锁存器位 不能同时为高电平, 否则电路可能振荡. 实际上, 在模拟器中, 此电路经测试会振荡, 因为 来自锁存器位 …

【算法题】46. 全排列-力扣(LeetCode)

【算法题】46. 全排列-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 46. 全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3…

xxl-job、Quartz、power-job、elastic-job对比选型

一、框架对比 1. Quartz 优点&#xff1a;稳定性和可扩展性好&#xff0c;适用于企业级应用&#xff1b;调度功能丰富&#xff0c;满足多种需求。 缺点&#xff1a;本身不提供原生的分布式支持&#xff0c;需要通过扩展或与其他组件结合来实现分布式任务调度&#xff1b;调度…

计算机人工智能前沿进展-大语言模型方向-2024-09-19

计算机人工智能前沿进展-大语言模型方向-2024-09-19 1. SAM4MLLM: Enhance Multi-Modal Large Language Model for Referring Expression Segmentation Authors: Yi-Chia Chen, Wei-Hua Li, Cheng Sun, Yu-Chiang Frank Wang, Chu-Song Chen SAM4MLLM: 增强多模态大型语言模型…

kubernetes持久化存储

一 、Volumes 容器的弊端&#xff1a; 1. Container (容器) 中的磁盘文件是短暂的&#xff0c;当容器崩 溃时&#xff0c;kubelet 会重新启动容器&#xff0c;但最初的文件将丢 失&#xff0c;Container 会以最干净的状态启动。 2. 当一个 Pod 运行多个 Container 时&#x…

网络安全:建筑公司会计软件遭受暴力攻击

黑客正在暴力破解基金会会计服务器上高权限账户的密码&#xff0c;这些账户广泛用于建筑行业&#xff0c;从而侵入企业网络。 这一恶意活动最先被 Huntress 发现&#xff0c;其研究人员于 2024 年 9 月 14 日检测到了此次攻击。 Huntress 已经发现这些攻击对管道、暖通空调、…