ACM详解(9)——其他

华为机试编程模拟题9:题型规则、算法考点与ACM模式实战详解 动态规划、图遍历与ACM模式输入输出是算法笔试中的高频考查方向。理解状态定义与转移方程,掌握DFS/BFS的visited标记技巧,能有效解决最大不相邻和、连通块面积等经典问题。这些算法原理不仅服务于华为机试等企业编程考核,也广泛用于工程中的路径规划与资源调度场景。本文以华为机试编程模拟题9为载体,深入拆解题型分值、算法考点与编码细节,并给出Python、Java、C++实用模板,帮助求职者在真实笔试环境中规避超时、越界与格式陷阱,实现从刷题到拿分的转化。 阅读详情

 

    有时候会考一些锻炼基本能力的题目,下面使用几个例子进行简单分析。
1、IP Address
Description
Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of '1s' and '0s' (bits) to a dotted decimal format. A dotted decimal format for an IP address is form by grouping 8 bits at a time and converting the binary representation to decimal representation. Any 8 bits is a valid part of an IP address. To convert binary numbers to decimal numbers remember that both are positional numerical systems, where the first 8 positions of the binary systems are:
27    26 25 24 23   22 21 20
128  64 32 16 8   4   2   1
Input
The input will have a number N (1<=N<=9) in its first line representing the number of streams to convert. N lines will follow.
Output
The output must have N lines with a doted decimal IP address. A dotted decimal IP address is formed by grouping 8 bit at the time and converting the binary representation to decimal representation.
Sample Input
4
00000000000000000000000000000000
00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001
Sample Output
0.0.0.0
3.128.255.255
203.132.229.128
80.16.0.1
 
翻译: 23 位的 0/1 序列表示可以用来表示一个 IP 地址,题目要求把给定的 32 位序列转换为 IP 地址。例如序列 00000011100000001111111111111111 可以转换为 3.128.255.255 。
解题思路:把序列分成 8 个一组,然后把二进制序列转换为十进制的数,然后把 4 个数用“ . ”连接即可。题目比较简单,不再给出参考代码。
2、Elevator
描述
The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 seconds to move down one floor. The elevator will stay for 5 seconds at each stop.
For a given request list, you are to compute the total time spent to fulfill the requests on the list. The elevator is on the 0th floor at the beginning and does not have to return to the ground floor when the requests are fulfilled.
输入
There are multiple test cases. Each case contains a positive integer N, followed by N positive numbers. All the numbers in the input are less than 100. A test case with N = 0 denotes the end of input. This test case is not to be processed.
输出
Print the total time on a single line for each test case.
样例输入
1 2
3 2 3 1
0
样例输出
17
41
翻译:大楼中只有一个电梯,请求序列有 N 个正整数组成,数字表示电梯将在哪里停,按照顺序。电梯向上一层需要 6 秒,向下一层需要 4 秒,每层停 5 秒。题目要求根据给定的请求序列求出电梯完成所有任务需要的时间。电梯刚开始在 0 层。
解题思路:使用 sum 表示总时间,初始值为 0 。对于每个请求序列,取出每个请求的楼层,如果是请求序列中第一个,计算上楼需要的时间( n*6 ),然后再加上电梯停留的时间( 5 ), sum=sum+n*6+5 。如果不是第一个请求,看上次请求的位置 m ,如果小于当前位置,计算上楼的时间( n-m ) *6 ,电梯停留时间 5 , sum=sum+(n-m)*6+5 ,如果大于当前位置,计算下楼时间 (m-n)*4 ,电梯停留时间 5 , sum=sum+(m-n)*4+5 。
参考代码如下:
         /*
          * 电梯运行时间
          */
         public static void test4(int[] datas){
                   // 表示原来的楼层
                   int m = 0;
                   // 表示总时间
                   int sum = 0;
                   for(int i=1;i<=datas[0];i++){
                            int n = datas[i];
                            if(n>m){
                                     sum = sum+(n-m)*6+5;
                            }else{
                                     sum = sum+(m-n)*4+5;
                            }
                            m = n;
                   }
                   System.out.println(sum);
         }
3、集合的减法运算
Problem Description
集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)。
Input
每组输入数据占 1 行 , 每行数据的开始是 2 个整数 n(0<n<=100) 和 m(0<m<=100), 分别表示集合 A 和集合 B 的元素个数,然后紧跟着 n+m 个元素,前面 n 个元素属于集合 A ,其余的属于集合 B. 每个元素为不超出 int 范围的整数 , 元素之间有一个空格隔开 .
如果 n=0 并且 m=0 表示输入的结束,不做处理。
Output
针对每组数据输出一行数据 , 表示 A-B 的结果 , 如果结果为空集合,则输出“ NULL ” , 否则从小到大输出结果 , 为了简化问题,每个元素后面跟一个空格 .
Sample Input
3 3 1 2 3 1 4 7
3 7 2 5 8 2 3 4 5 6 7 8
0 0
Sample Output
2 3
NULL
集体思路:没有难度,就是锻炼基本功。从每个测试用例中分别得到 A 集合和 B 集合,遍历 A 集合中的所有元素,如果不在 B 集合中,则输出该元素。不再给出参考代码。

李绪成 优快云 Blog:http://blog.youkuaiyun.com/javaeeteacher
优快云学生大本营:
http://student.youkuaiyun.com/space.php?uid=124362
如果喜欢我的文章,就加我为好友:
http://student.youkuaiyun.com/invite.php?u=124362&c=7be8ba2b6f3b6cc5

延伸阅读:

ACR122U-A9|ACR1251|ACM1252系列NFC读写器PCSC Tool实战指南:从驱动安装到指令交互 本文详细介绍了ACR122U-A9、ACR1251和ACM1252系列NFC读写器的PCSC Tool实战指南,涵盖驱动安装、设备识别、卡片连接、UID获取及指令交互等关键步骤。通过具体案例和实用技巧,帮助开发者快速解决常见问题,并探索进阶功能开发,如LED控制和高速传输模式。 阅读详情

相关推荐

ACR122U-A9|ACR1251|ACM1252系列NFC读写器与PCSC Tool的智能卡交互全流程解析

本文详细解析了ACR122U-A9、ACR1251及ACM1252系列NFC读写器与PCSC Tool进行智能卡交互的全流程。从驱动安装、设备连接到使用PCSC Tool发送APDU指令获取卡片UID、判断卡片类型,并最终过渡到编程自动化,提供了完整的实战指南与常见问题排查方案,帮助开发者快速掌握NFC读写器的核心操作。

weixin_29174141的博客 381

POJ 2105 IP Address (水题)

POJ 2105 IP Address (水题) IP Address Time Limit: 1000MS Memory Limit: 30000K Description Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert ...

kylinholmes的博客 367

ACM MM 2025 Overleaf 模板指导

本文介绍了 ACM 文章的排版模板 “acmart” 的使用方法,涵盖了文档结构、格式化规则、数学公式、图像、表格、引用格式以及多语言支持等内容。文章详细说明了如何正确使用 $\LaTeX$ 进行章节划分、插入图表、编写数学公式,并遵循 ACM 期刊和会议论文的格式要求。此外,还包括了 SIGCHI 扩展摘要的特殊格式、附录的使用、致谢部分的编写,以及参考文献的管理方式。本文提供了具体的代码示例和最佳实践,以帮助作者高效地编写符合 ACM 规范的论文。

lemonzjk的博客 1万+

7.6机试练习

描述 Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of ‘1s’ and ‘0s’ (bits) to a dotted decimal format. A dotted decimal format for an IP address is form by grouping 8 bi

qq_53826699的博客 304

c语言竞赛题目大全(acm)

是c语言的进阶学习,可提高编程能力,可作为ACM竞赛的参考题目

DeepSeek赋能CAD:从API调用到智能设计工作流的实战指南

本文详细介绍了如何利用DeepSeek AI技术赋能CAD设计工作流,从API调用到智能设计优化的实战指南。通过Python环境配置、API接入详解以及四大智能设计场景的实战案例,帮助CAD设计师实现参数化设计优化、自动规范检查等高效工作方式,大幅提升设计效率和质量。

weixin_29092579的博客 630

ACM 介绍

bool 型:8位,1字节, 范围0~1 (0为假,任何非0值为真)   char 型:8位,1字节, 范围-128~127   int 型:一般32位,4字节,范围21,4748,3648 (大约2*10^9)   long long型:64位,8字节,范围稍大于9x10^18   __int64 型(Win下,VC6) :和long  long 一样   在题目中要估计

代码改变世界 1149

Anaconda安装及配置+pytorch深度学习环境(2024复旦计算机工作站0705)

Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,Pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。

ZhiYilang的博客 2349

POJ 2105 IP Address(水题)

题目链接

Chain_xg的专栏 641

Sinutrain下载安装与开启OPC UA---kalrry

Sinutrain 开启 OPC UA 本教程只适用于版本,其他版本配置目录有所改变建议安装到默认路径,否则后期修改路径时候容易忽略细节本教程提供安装包为官方包,网上有些非官方包安装后容易出现授权问题,比如授权管理器无法启动,官方技术会建议你重装系统,很多时候是因为安装包非官方包在首次安装前,建议重启一遍系统。

kalrry 1万+

AOI检测总误判?五大常见问题与实战解决方案

通过对图像质量、检测程序、外界干扰、算法优化以及设备维护和校准的全面把控,企业可以有效降低误判率,提升AOI检测的准确性和可靠性,为工业生产提供更有力的质量保障。表现描述:在AOI检测时,元器件字符因印刷颜色深浅、模糊或受到灰尘干扰等差异,再加上元件库参数未根据实际生产优化,会使系统误将合格元件判定为不合格,严重影响生产效益和产品质量。优化元件库:着重检测关键差异字符,如型号编码等关键信息,剔除不必要字符的检测项,减少干扰,专注于关键识别的准确性。检测时,根据物料信息动态更新检测参数,使系统适应物料变化。

ALeader_AOI的博客 3499

ACM中AC、WA、PE、RE分别是什么意思

英文原版(下面有翻译) Queuing: The judge is so busy that it can't judge your solution at the moment. Usually you just need to wait a while because our judge server is powered by IBM and Intel Xeon :-) Compilin...

qq_38769551的博客 2万+

STM32F407控制舵机

STM32F407控制舵机运行 使用STM32F407控制舵机,首先来看下舵机图片 [黑红白,黑线接GND,红线接VCC,信号线接白色线(有的舵机线的颜色不同,例如褐色红色橘色,仅颜色不同接法还如上述)] 舵机需要信号的周期为20ms,即频率为50Hz。 接下来正式操作: 步骤一:STM32F4程序(本次程序的PWM信号产生的周期频率由定时器TIM14通道1产生(TIM14_CH1),想要使用其它定时器也没关系下面会讲到) #include "pwm.h" void TIM14_CH1_PWM_In

Ievn_Hare的博客 1万+

【ACM】魔方阵的算法与实现

遇见ACM题: 给的提示算法为: 笔者按照以上算法进行三阶模拟运行,发现不能完全推出魔方阵,有兴趣的可以自己尝试! 于是上百度搜索相关内容,如下: 参考来源:https://baike.baidu.com/item/%E9%AD%94%E6%96%B9%E9%98%B5/10973743?fr=aladdin#reference-[2]-667337-wrap 可见实现方...

风云千樯、 642

Claude Code 实战 从零教你用 Claude Code 干活

Claude Code 实用指南:AI 编程助手的核心功能与使用技巧 Claude Code 是 Anthropic 推出的智能编程助手,可直接在本地环境中执行操作,相比传统 AI 对话工具具有显著优势:能直接读取项目文件、自动执行修改、记忆项目规则,并支持连接外部服务。本文详解其安装配置、三大核心场景(资料搜索、网页抓取、文章撰写)及进阶功能(Skills、MCP协议、斜杠命令)。特别提供了工作模式切换、CLAUDE.md配置文件等实用技巧,并附常见问题解决方案,帮助用户高效利用这一"坐在身边的

2401_84052244的博客 7583

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 817

RK3568 Linux + GD32F303 双 USB CDC-ACM 虚拟串口 原理与编程实战总结

根因开启校验必须设 9 位数据位(8 位数据 + 1 位校验位)解决方案:配置函数中自动将数据位 + 1,强制切换 9 位模式架构:RK3568 + GD32F303 单 USB 实现双路虚拟串口,方案稳定通用GD32F303 硬件:开启奇偶校验 → 数据位必须设为 9 位核心 BUG 修复:USB 重配置串口参数后,必须重启接收中断Linux 适配:双 CDC 自动生成双 ttyACM 节点,两次配置请求直接覆盖即可。

qq_40883489的博客 694

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

努力,加油每一天鸭~ 1947

ACM如何入门,ACM竞赛需要学习哪些算法?

适合小白、想参加蓝桥杯,ACM省赛,ACM区域赛,准备面试编程题的同学

Accepted 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

linux ACM驱动详解

Module_init中会注册tty_driver,tty_device会在acm usb_driver的probe中注册。 每个ACM设备都由2个Interface组成,第一个interface有一个interrupt endpoint主要负责控制,第二个interface主要负责数据传输,有2个endpoint,有可能是两个int,也有可能是2个bulk。他们都是成对出现的。 比如: 这

知秋一叶 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: ACM详解(8)——加密
下一篇: ACM详解(7)——压缩与编码
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值