【2023秋招】10月13日华为留学生校招三道题

2023大厂真题提交网址(含题解):

www.CodeFun2000.com(http://101.43.147.120/)

最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
在这里插入图片描述

完整真题解析: 【2023秋招】10月13日华为留学生校招三道题以及满分解析

第一题:花圃种植

题目内容

M M M 块花圃(使用 0 , 1 , 2 , . . . , M − 1 0,1,2,...,M-1 0,1,2,...,M1方式连续编号),每种植物(植物使用 0 , 1 , 2 , . . . , N − 1 0,1,2,...,N-1 0,1,2,...,N1 方式连续编号)需要种植到其中一块花圃上 ,

要求植物编号除以总花圃数的余数不能与所种植的花圃编号相同,种植方案要满足种植的花圃数目尽量多,多个花圃中的植物不能重样。

请编写一个程序, 统计所有满足条件的种植方案数目。

输入描述

输入为两个整数花圃数目 M M M 和 植物数量 N N N

1 ≤ M ≤ 1000 1 \leq M \leq 1000 1M1000 , 1 ≤ N ≤ 10000 1 \leq N \leq 10000 1N10000

输出描述

输出满足条件的种植方案数目

样例

输入

2 3

输出

2

第二题:计算座位最大利用数

题目内容

一列具有 m m m 个座位的火车,从起点到终点共停靠 n n n 个站点,站点编号从 0 0 0 n − 1 n-1 n1

发车前有 x x x 名乘客预定了座位,因为预定数量可能超出座位数,为了保证效率最大化,请计算如何分配才能是座位利用率最大,并输出最大的座位利用数。

说明:

座位利用数定义为每个座位被使用的站数。

例如有两个座位,第一个座位从第 0 0 0 10 10 10 站有人坐(表示从 0 0 0 站上车, 10 10 10 站下车,第 10 10 10 站不占座,所以利用率是 10 − 0 = 10 10-0=10 100=10 ),第二个座位从第 1 1 1 9 9 9 站有人坐,则座位利用率为 ( 10 − 0 ) + ( 9 − 1 ) = 18 (10-0)+(9-1)= 18 (100)+(91)=18 乘客在某站下车后,其他乘客从这一站就可以开始使用这个座位;

无需考虑乘客需要更换座位的问题,保证任意时刻列车上乘客数量不超过 m m m 即可。

输入描述

第一行输入 m m m n n n x x x 三个数字,分别表示列车座位数量、停靠站点数量和预定乘客数。

接下来 x x x 行输入,表示 x x x 条预定记录,每行有两个输入,分别表示此预定记录的上车站点和下车站点。

1 ≤ m ≤ 9 1 \leq m \leq 9 1m9 , 2 ≤ n ≤ 20 2\leq n \leq 20 2n20 , 1 ≤ x ≤ 9 1 \leq x \leq 9 1x9

输出描述

输出一个数字,表示座位最大利用数。

样例

样例一:

输入

2 11 4
0 1
1 9
0 10
3 8

输出

19

样例解释:

选择前三位乘客可以使座位利用率最大: 19 = ( 1 − 0 ) + ( 9 − 1 ) + ( 10 − 0 ) 19=(1-0)+(9- 1)+ (10- 0) 19=(10)+(91)+(100) 。若选择后两位乘客,则利用率为 15 − = ( 10 − 0 ) + ( 8 − 3 ) 15-=(10-0)+(8- 3) 15=(100)+(83) 。若选择全部四位乘客,则第 3 3 3 8 8 8 站车上存在 3 3 3 名乘客,超出列车座位数。

样例二:

输入

1 11 2
0 5
5 10

输出

10

样例解释:

两位乘客可以使用的座位利用率最大: 10 = ( 5 − 0 ) + ( 10 − 5 ) 10 = (5-0) + (10-5) 10=(50)+(105)

第三题:循环依赖检测

题目内容

在软件架构设计和实现中,出现模块之间循环依赖说明软件设计和实现不太合理,不符合好的软件实践。很多软件会针对循环依赖问题进行检测。

给定模块的函数列表和函数调用关系后,请给出相关的循环依赖模块。

循环依赖的定义:2个及2个以上的模块相互依赖形成环,即循环依赖。

如有三个模块A、B、C,依赖关系为:A->B->C->A, 即这三个模块形成了循环依赖。

另外,通过公共节点形成的大环也属于循环依赖。如A->B->D->E->B->C->A,则与A形成循环依赖的大环模块包括BCDE。

输入描述

输入包含模块名称,包含的函数,以及函数的调用关系。

第一行输入一个整数 n n n ,代表模块以及其包含的函数的条目数,后面 n n n 行,每行第一个为模块名称,后面为该模块包含的函数名称,中间均由空格隔开。

n = = 7 n == 7 n==7,输入如下:

A a1 a2 a3
B b1 b2 b3
C c1 c2 c3
D d1 d2 d3
E e1 e2 e3
F f1 f2 f3
G g1 g2 g3

接下来然后输入一个整数 m m m ,代表函数的调用关系的条目数,后面 m m m 行,每行第一个为调用名称,后面为被调用函数,中间均由空格隔开。

m = = 5 m == 5 m==5,输入如下:

a1 b1 b2
b2 b1 c2 d1
c2 a3
d2 e1
e1 b1 f2 g3

最后输入一个字符串 S S S ,代表指定模块。

S = A S = A S=A

规格说明:

  • 模块名和函数名均为字符串,字符串长度不超过 64 64 64 ,目不会存在特殊字符
  • 模块和函数个数不超过 20 20 20
  • 每个函数调用其他函数不会超过 5 5 5
  • 模块名称和函数名称全局唯一
  • 一个函数只能属于一个模块
  • 模块名称不会为字符串 n u l l null null

输出描述

与指定模块形成循环依赖的其他模块。

按名称的字典序输出。

如果不存在,则输出 n u l l null null (注意是字符串"null",不是空指针),

比如上述例子的输入 对应输出为: B C D E B C D E BCDE

样例

样例一:

输入

8
A a1 a2 a3
B b1 b2 b3
C c1 c2 c3
D d1 d2 d3
E e1 e2 e3
F f1 f2 f3
G g1 g2 g3
H h1 h2
5
a1 b1 b2
b2 b1 c2 d1 h1
c2 a3
d2 e1
e1 b1 f2 g3
A

输出

B C D E

样例解释:

根据调用关系,与 A A A 模块形成循环依赖的其他模块为 B C D E B C D E BCDE

(注意: 这里相当于 A B C ABC ABC B D E BDE BDE 两个小环,不止是统计 A->B->C->A 的小环,需要统计 A->B->D->E->B->C->A 对应的大环)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔子哥学算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值