- 博客(638)
- 收藏
- 关注
原创 2025华为ODB卷-箱子之字形摆放100分-三语言题解
解题思路很直接,我们创建一个二维矩阵(数组)来模拟空地,然后按照之字形的规则将字符串中的字符填入矩阵。时间复杂度是 O(len(str)),空间复杂度是 O(len(str)),这对于题目给定的数据范围(字符串长度最大为1000)是完全可以接受的。有一批箱子(形式为字符串,设为str),要求将这批箱子按从上到下以之字形的顺序摆放在宽度为。之字形的特点是:先从上到下放置,到达底部后再从下到上放置,然后再从上到下,形成Z字形的反复。最后,我们遍历矩阵中的每一行,输出其中的字符,就得到了箱子的摆放结果。
2025-07-16 12:24:14
246
原创 2025华为ODB卷-宜居星球改造计划200分-三语言题解
的网格,每个网格有3个值,宜居区、可改造区、死亡区,使用 YES、NO、NA 代替,YES 表示该网格已经完成大气改造,NO 表示该网格未进行改造,后期可进行改造,NA 表示死亡区,不作为判断是否改造完的宜居,无法穿过。初始化下,该区域可能存在多个宜居区,并且每个宜居区能同时在每个太阳日单位向上下左右四个方向的相邻格子进行扩散,自动将4个方向相邻的可改造区改造成宜居区。请计算这个待改造区域的网格中,可改造区是否能全部成宜居区,如果可以,则返回改造的太阳日天数,不可以则返回 -1。假设将星球待改造的区域为。
2025-07-16 12:21:17
54
原创 2025华为ODB卷-士兵过河-三语言题解
我们的目标是在给定时间 T 内,让尽可能多的士兵过河,并在相同士兵数下保证用时最短。首先明确一点,本题对于条件3中所描述的"2个士兵坐船1个士兵划船"的情况,由于条件中已经给出。所以为保持两个士兵划速相同,则需要向划的慢的士兵看齐。2)两个士兵坐船时,重量增加吃水加深,水的阻力增大;3)由于河水湍急大量的力用来抵消水流的阻力,所以2)中过河用时不是。请帮忙给出一种解决方案,保证存活的士兵最多,且过河用时最短。个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。的时长后到达河面,没到过对岸的士兵都会被消灭。
2025-07-15 19:16:33
55
原创 2025华为ODB卷-叠积木-三语言题解
这个算法的时间复杂度为O(n log n + n * L),其中n是积木数量,L是可能的层长度范围大小,最坏情况下为O(n^2)。如果能找到这样的长度,让所有积木恰好组成多层且每层长度相同,那么就能得到最大的墙高。我们需要找到一种合适的每层长度,使得所有积木都能被用完,并且墙的层数最多。小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。输出一个数字,为墙的最大层数,如果无法按要求叠成每层长度一致的墙,则输出-1。若必须用完这些积木,叠成的墙最多为多少层?
2025-07-15 18:37:07
17
原创 2025华为ODB卷-任务总执行时长-三语言题解
空间复杂度是O(num+1),用于存储所有可能的总执行时长。题目要求我们找出所有可能的任务总执行时长。我们有两种任务类型,分别需要taskA和taskB的时间来执行,总共要安排num个任务。还有一个特殊情况需要考虑:如果taskA等于taskB,那么无论怎么组合,总执行时长都只有一种可能,即num * taskA。这道题目看起来可能有些复杂,但实质上是一个简单的组合问题,关键在于理解问题的本质。请编写一个方法,生成每次编排后的任务所有可能的总执行时长。,其中i表示类型A任务的数量,范围从0到num。
2025-07-15 12:25:14
129
原创 2025华为ODB卷-IPv4地址转换成整数三语言题解
存在一种虚拟IPv4地址,由4小节组成,每节的范围为0~255,以#号间隔,虚拟IPv4地址可以转换为一个32位的整数。现以字符串形式给出一个虚拟IPv4地址,限制第1小节的范围为1128)#(0255)#(0~255),要求每个IPv4地址只能对应到唯一的整数上。如果是非法IPv4,返回invalid IP。
2025-07-15 11:28:34
138
原创 2025.07.09华为机考真题解析-第三题300分
摘要:题目要求为博物馆选择最优监控摄像头配置,在预算内满足覆盖需求。这是一个0/1背包问题变形,使用动态规划求解。定义dp[c]为成本c时的最大覆盖面积,倒序更新避免重复选择。最后遍历查找满足条件的最小成本。若无法满足需求则输出0 0。时间复杂度O(n×budget),空间复杂度O(budget)。提供了Python、C++和Java三种实现代码。
2025-07-10 17:07:15
516
原创 2025.07.09华为机考真题解析-第二题200分
摘要:题目要求构建地铁线路故障预警系统,在给定地铁网络和起点终点后,需处理多次线路故障查询。每次故障需输出受影响的路由编号列表。解决思路包括:1)使用DFS枚举所有简单路径;2)按字典序排序路径;3)预处理线路-路径映射。对于每次查询,直接返回对应线路影响的路径编号。时间复杂度主要取决于路径枚举,但题目保证路径数量上限。提供了Python、C++和Java三种实现方案,核心都是DFS+排序+预处理查询。
2025-07-10 17:06:35
373
原创 2025.07.09华为机考真题解析-第一题100分
本文介绍了花园灯具照明设计问题的贪心算法解决方案。题目要求在长廊花园中安装最少数量的灯具,使所有花卉都能被照亮。每个灯具可以照亮相邻位置。算法采用从左到右遍历花卉,优先在右侧安装灯具以最大化覆盖范围,若右侧无空地则尝试左侧。若无法安装则返回-1。提供了Python、C++和Java三种语言的实现,时间复杂度为O(n)。样例输入与输出展示了算法在不同情况下的处理结果。
2025-07-10 17:05:53
146
原创 【备战秋招】2024年小米秋招笔试题第一套-第二题
K 小姐想知道,最少需要进行多少次魔法操作,才能使花园中剩余的花的魔力值之和成为。这是一个经典的同余动态规划问题。对于每朵花,都有两种选择:移除或保留。K 小姐是一位热爱园艺的魔法师。她有一个神奇的花园,里面种植着。输出一个整数,表示 K 小姐需要进行的最少魔法操作次数。K 小姐想要让花园的总魔力值成为一个特定数字。的倍数(如果移除所有的花,总和视为 0,也是。每朵花都有一个魔力值,初始时第。,分别表示魔法花的数量和目标倍数。设当前剩余魔力值之和为。,表示每朵魔法花的初始魔力值。第一行包含两个正整数。
2025-07-04 19:21:44
1006
原创 【笔试突围】2024年小米秋招笔试真题第一套
请帮助 K 小姐计算出最短的烘焙时间,使她能尽快品尝到这两种咖啡。台不同的咖啡烘焙机,每台机器烘焙不同咖啡豆的时间各不相同。这道题的核心思想是考虑两种策略:单机烘焙和双机并行烘焙。对于双机并行的情况,我们需要选择一台机器烘焙。输出一行一个正整数,表示最短的烘焙时间。咖啡豆,另一台机器烘焙。,表示咖啡烘焙机的数量。第一行包含一个正整数。,表示每台烘焙机烘焙。,表示每台烘焙机烘焙。
2025-07-04 19:20:15
40
原创 2025.06.11-华子第三题-300分
这篇题解分析了"卢小姐的展览馆设计"问题,要求在允许交换任意两个展示柜位置后,求解展览馆区域中的最大矩形面积。以下是摘要: 问题核心:在经典直方图最大矩形问题基础上增加一次交换操作机会,需通过交换提升某个区间的最小值从而增大矩形面积。 关键思路: 使用分治算法结合线段树查询区间最小值 预处理前缀和后缀最大值以快速获取区间外最大值 对于每个区间,考虑交换其最小值与区间外最大值来提升面积 算法优化: 线段树实现O(logn)的区间最小值查询 分治递归处理左右子区间 利用预处理数据计算交换后的
2025-06-14 10:03:59
102
原创 2025.06.11-华子第二题-200分
本文将详细介绍如何优化智能家居网络的树形拓扑结构,确保所有叶子节点到中央控制器的距离相同。题目要求移除最少的设备节点,使得剩余网络中所有叶子节点到根节点的距离一致。文章提供了一种基于动态规划的解决方案: 构建树形结构并以节点1为根 计算每个节点到最远叶子节点的高度 枚举可能的目标深度,使用动态规划计算能保留的最大节点数 最终结果为总节点数减去最大保留节点数 解决方案时间复杂度为 O(n×h),其中 h 是树的高度。文末提供了Python、C++和Java三种语言的参考代码实现,帮助读者理解算法的具体实现细节
2025-06-14 10:03:21
52
原创 2025.06.11-华子第一题-100分
摘要: 题目描述LYA在校园内配送快递的最短路径问题。校园有N个地点构成树状结构,总部位于地点1。配送流程分为:收取包裹(访问所有寄件地点)、返回总部、派送包裹(访问所有收件地点)、返回总部。要求计算完成M个任务的最短总路程。 算法思路: 收取阶段:计算包含所有寄件地点的最小连通子树的边权和×2(往返) 派送阶段:同理计算包含所有收件地点的最小连通子树边权和×2 使用DFS遍历树结构,标记必须经过的边,累加边权 复杂度分析: 时间复杂度:O(N),通过两次DFS遍历树结构 空间复杂度:O(N),存储树结构和
2025-06-14 10:02:41
56
原创 2025.06.11-华子留学生第一题-300分
摘要 本文介绍了一个智能编程环境的命令自动补全系统,通过编辑距离(莱文斯坦距离)匹配用户输入与合法命令。系统根据用户输入与命令的相似度,输出最匹配的结果。算法核心是动态规划计算编辑距离,并采用优化策略提高效率。解决方案包括Python、C++和Java代码实现,适用于处理大规模命令集(N≤30000)和中等长度字符串(L≤25)。当用户输入与命令完全匹配时直接输出,否则输出所有编辑距离不超过阈值D的候选命令,按距离和字典序排序展示。
2025-06-14 09:59:48
30
原创 2025.06.11-华子留学生第一题-200分
K小姐的密室逃脱问题要求寻找从起点到终点的最短路径,网格中包含可通行地板(0)、墙壁(1)、传送门(2)等元素。使用0-1 BFS算法处理传送门的0代价传送,普通移动每次消耗1单位时间。算法预处理传送门映射,用双端队列优先处理0代价状态,确保找到最短路径。时间复杂度O(mn),空间复杂度O(mn)。样例1中绕过墙壁耗时8单位,样例2利用传送门仅需4单位。无法到达时输出-1。
2025-06-14 09:59:09
36
原创 2025.06.11-华子留学生第一题-100分
摘要: 题目要求将图书馆座位序列划分为最多的连续区域,确保每种颜色的座位完全包含在同一个区域内。采用贪心算法,先记录每个颜色的最后出现位置,然后从左到右扫描,动态调整区域边界。当扫描位置到达边界时,划分出一个区域。算法时间复杂度为O(n),空间复杂度O(1)。示例代码展示了Python、C++和Java的实现,输出结果为各区域长度列表。例如输入"abcdeabl"输出[7,1],表示划分为两个区域。
2025-06-14 09:58:35
361
原创 【2025年B卷】OD-100分-斗地主之顺子
例如:{3,4,5,6,7}和{3,4,5,6,7,8,9,10,J,Q,K,A}都是有效的顺子;而{J,Q,K,A,2}、{2,3,4,5,6}、{3,4,5,6}(少于5张)、{3,4,5,6,8}(不连续)等都不是有效的顺子。在这个游戏中,扑克牌由小到大的顺序为:3、4、5、6、7、8、9、10、J、Q、K、A、2。如果能组成顺子,则每行输出一个顺子,顺子中的每张牌用空格分开,且按照顺子首牌的大小从小到大排序。顺子是一种常见的出牌方式,其规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。
2025-06-03 21:41:29
77
原创 【2025年B卷】华为OD-100分-字符串重新排列、字符串重新排序
因此总体时间复杂度为O(n * m log m + n log n),对于题目给定的数据范围(字符串长度不超过1000),这个复杂度是可以接受的。首先,需要对每个单词内部的字母进行排序。这里可以将每个单词转换为字符数组,然后使用内置的排序函数对字符进行重新排列,最后再转回字符串。在不同编程语言中,都有对应的方法来支持自定义排序。空间复杂度为O(n),主要用于存储单词及其出现次数。请输出处理后的字符串,每个单词以一个空格分隔。输出处理后的字符串,每个单词以一个空格分隔。包括以空格分隔的若干个单词,请对。
2025-06-02 19:16:53
157
原创 2025.05.28-华为暑期实习第三题-300分
摘要:K小姐计划攀登一座神秘山峰,给定二维地图表示各点海拔高度。从高度为0的山脚出发,每次可向上下左右移动一步,移动需满足攀爬能力限制:向上移动时目标高度不超过当前高度加能力值,向下移动时不低于当前高度减能力值。求到达最高点(唯一山顶)的最少步数,若无法到达则返回-1。使用广度优先搜索(BFS)算法,从山脚开始探索可达点,首次到达山顶的路径即为最短路径。时间复杂度O(R×C),空间复杂度O(R×C),适用于大规模地图。
2025-05-29 11:09:26
55
原创 2025.05.28-华为暑期实习第二题-200分
摘要 题目要求为A先生规划从起点到终点的最短旅游路径,当存在多条最短路径时选择景点编号字典序最小的路线。解法采用改进的Dijkstra算法,在计算最短路径时维护路径字符串,遇到等长路径时比较字典序。输入包括景点邻接矩阵、酒店信息、起点和终点,输出最优路径的景点编号序列。该方法时间复杂度为O(n²),适用于n≤15的数据规模。 (149字)
2025-05-29 11:08:56
616
原创 2025.05.28-华为暑期实习第一题-100分
本文提出了使用滑动窗口和双端队列解决无线信号发射器选择问题的高效算法。给定n个节点的信号发射器及其用户连接数,算法确定行人经过每个路段时应连接用户数最少的发射器。关键点在于: 每个路段i对应的候选发射器范围为[max(0,i+1-k), min(n-1,i+k)],需要找出其中负载最小的发射器 使用双端队列维护当前窗口的最小值,保证队列按负载递增排序 移除队尾比新元素大的元素以保持单调性 移除过期元素(超出窗口左边界的索引) 时间复杂度为O(n),适用于大规模数据(n≤10^5) 该方案避免了重复扫描窗口的
2025-05-29 11:08:30
649
原创 2025.05.22-得物春招机考真题解析-第三题
这篇文章介绍了机器人导航路径计数问题,主要内容包括: 问题描述:在n×n网格中,机器人从左上角到右下角,只能向右或向下移动,存在两个障碍物,求不同路径数量。 解决方案: 使用动态规划方法 定义dp[i][j]表示到(i,j)位置的路径数 状态转移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1] 处理障碍物位置设为0 算法特点: 时间复杂度O(n²),空间复杂度O(n²) 结果对998244353取模 代码实现:提供了Python、C++和Java三种语言的实现代码,核心逻辑一致。
2025-05-26 19:36:28
656
原创 2025.05.22-得物春招机考真题解析-第二题
摘要:题目描述魔法书页重排问题,初始每页标记对应页码,按照规则对每个x的倍数页进行循环右移操作。算法通过遍历1到n,收集每个x的倍数位置并执行循环右移,时间复杂度为O(n log n)。提供了Python、C++和Java三种实现代码,展示了如何高效模拟这一过程并输出最终每页的标记结果。核心在于理解循环右移操作及其对数组元素的影响。
2025-05-26 19:35:33
1429
原创 2025.05.25-得物春招机考真题解析-第一题
贪心策略是:在保证能够到达目标的前提下,每一步都尽可能选择较小的移动距离。我们需要找到使用设备次数最少的方案,并且在所有最优方案中选择字典序最小的。层,应该如何安排每次使用设备时向上移动的层数?为了便于设备的程序化控制,需要输出字典序最小的移动方案。K小姐是一名快递配送员,她需要在城市中的高楼间进行配送任务。对于每组测试数据,第一行输出最少需要使用设备的次数,第二行输出字典序最小的移动方案。K小姐配备了一台智能升降设备,每次使用这台设备可以帮助她向上移动若干层。由于设备的技术限制,每次移动的层数。
2025-05-26 19:34:56
73
原创 2025.05.22-携程春招机考真题解析-第四题
卢小姐开发了一个二进制编码调整系统,要求判断给定的二进制序列是否可以通过最多一次位置交换操作变成一个能被3整除的特殊编码。系统接收多个测试用例,每个用例包含一个二进制序列。如果序列已经是特殊编码,输出0;如果可以通过一次交换实现,输出交换的位置;否则输出-1。算法通过计算序列的十进制值模3的结果,并根据交换操作对模运算的影响,寻找合适的交换位置。时间复杂度为O(n),适用于大规模数据处理。
2025-05-23 12:09:18
47
原创 2025.05.22-携程春招机考真题解析-第三题
LYA的数据分析系统问题要求将一个包含$n$个数值的数据集分割成两个非空子集,使得两个子集的“指标差异度”最小。指标差异度定义为前半部分子集的总和与后半部分子集的按位或运算结果的差的绝对值。通过预处理前缀和和后缀按位或数组,可以高效地枚举所有可能的分割点,计算最小差异度。该问题的时间复杂度为$O(n)$,空间复杂度为$O(n)$。参考代码提供了Python、C++和Java的实现,展示了如何通过预处理和枚举分割点来解决问题。
2025-05-23 12:08:07
133
原创 2025.05.22-携程春招机考真题解析-第二题
A先生负责的数组优化系统允许通过“协调操作”将数组中的任意两个元素替换为两个新的正整数,且这两个新整数的最大公约数必须等于原元素的最大公约数。目标是通过多次操作使数组元素总和最小。经过分析,最小总和等于数组长度乘以数组所有元素的最大公约数。算法步骤包括计算数组的最大公约数,并返回该值乘以数组长度。时间复杂度为O(n log A),其中A是数组元素的最大值。提供了Python、C++和Java的参考代码实现。
2025-05-23 12:06:06
1027
原创 2025.05.22-携程春招机考真题解析-第一题
K小姐设计了一个字母解码系统,通过计算三个关键字母与目标字母之间的“解码复杂度”来评估解码难度。解码复杂度的定义为:每个关键字母到目标字母的距离等于它们在字母表中位置差的绝对值减去1,若结果为负数则取0。总解码复杂度为三个字母的复杂度之和。输入包含多个测试用例,每个用例给出三个关键字母和一个目标字母,要求输出总解码复杂度。解题思路是计算每个关键字母与目标字母的距离,并累加结果。时间复杂度为O(T),空间复杂度为O(1)。代码示例提供了Python、C++和Java的实现。
2025-05-23 12:05:41
57
原创 2025.05.21-华子留学生暑期实习第三题-300分
文章摘要: K小姐计划挑战一座神秘山峰,山峰地图为一个二维数组,每个点代表海拔高度。她只能向上下左右移动,且移动时高度差不能超过她的攀爬能力。从山脚(高度为0)出发,目标是到达山顶(最高点),求最少移动次数,若无法到达则返回-1。该问题可通过广度优先搜索(BFS)解决,通过队列记录搜索路径,并检查每一步的高度差是否满足条件。时间复杂度为O(R×C),空间复杂度为O(R×C),其中R和C为地图的行数和列数。
2025-05-23 12:03:04
237
原创 2025.05.21-华子留学生暑期实习第二题-200分
本文介绍了如何为智能高速公路上的用户规划最佳基站连接方案。问题描述中,高速公路上的每个路口都安装了一个基站,基站的信号覆盖范围为前后各 $k$ 个路口。用户设备应自动连接到覆盖范围内连接人数最少的基站,以提供最佳通信体验。 输入格式:第一行为基站连接人数的数组,第二行为基站的覆盖范围 $k$。输出格式:返回一个数组,表示每个路段上最佳基站的编号。 算法思路:该问题可以转化为滑动窗口最小值问题。通过双端队列(deque)维护当前窗口内的最小连接人数基站,确保在每个路段上快速找到最优基站。算法的时间复杂度为 $
2025-05-23 12:02:18
42
原创 2025.05.21-华子留学生暑期实习第一题-100分
本文介绍了如何解决一个关于量子计算芯片功率等级分配的问题。问题要求找到不超过给定数 $n$ 的最大"稳定功率档位",且该档位的数位和为质数。"稳定功率档位"定义为数字从左到右非递减。文章详细描述了问题的输入输出格式、样例解释以及数据范围,并提供了使用数字DP(Digit DP)的解题思路。通过预处理质数、设计记忆化搜索状态,并在搜索过程中尝试填入符合条件的最大数字,最终重建并输出答案。文章还提供了Python、C++和Java的参考代码,帮助读者理解和实现该算法。
2025-05-23 12:01:40
51
原创 2025.05.21华为暑期实习机考真题解析第三题
本文介绍了如何优化GPU资源租赁问题,以最大化云计算服务商的收益。问题描述中,公司拥有多个GPU核心,需在有限资源下选择最优客户组合,确保总租金收入最大化。规则包括:最多同时分配M个GPU核心,客户需求不重叠,且每个客户要么全部满足需求,要么完全不选择。输入格式包括M、N、R及每位客户的时间段需求,输出为最大租金。 解题思路包括: 离散化处理时间点:收集所有时间段的起点和终点,排序并去重,得到关键时间点。 预处理客户需求:计算每个客户在每个离散区间内的GPU核心需求及总租金贡献。 枚举客户组合:由于客户数量
2025-05-21 21:16:27
751
原创 2025.05.21华为暑期实习机考真题解析第二题
摘要: 本文介绍了如何解决灾区物资调度路径规划问题。问题要求在自然灾害后,从物资集结点到指定受灾乡镇的最短路径长度。输入包括乡镇数量、距离矩阵和目标乡镇编号,输出为最短路径长度。通过分析,该问题可转化为无向带权图的最短路径问题,适合使用Dijkstra算法求解。文章详细解释了Dijkstra算法的步骤,并提供了Python、C++和Java的参考代码。由于节点数量较少(最多21个),基本Dijkstra算法的时间复杂度为O(V²),足以高效解决问题。
2025-05-21 21:15:52
577
原创 2025.05.21华为暑期实习机考真题解析第一题
本文介绍了一个智能云任务分发系统的设计与实现。系统支持两种操作:添加任务和执行任务。任务根据优先级和到达顺序进行调度,优先级数值越小越优先,同优先级任务按到达顺序执行。执行任务时,系统从队列中取出任务并执行,若任务未完成则重新加入队列。系统通过优先队列(堆)实现任务调度,确保高效处理任务。文章提供了Python、C++和Java的参考代码,详细解释了算法的时间复杂度,并通过样例输入输出展示了系统的运行逻辑。该设计适用于大规模任务调度场景,能够有效处理高并发任务。
2025-05-21 21:15:14
579
原创 2025.05.17得物机考笔试真题第三题
文章介绍了如何判断商品价格序列是否有序的问题。K小姐作为电商平台的数据分析师,需要分析价格序列是否单调递增或递减。输入包括序列长度和价格序列,输出为“sorted”或“unsorted”。解题思路是通过遍历序列,检查相邻元素的大小关系,维护递增和递减的标志变量。如果序列满足单调性,则输出“sorted”,否则输出“unsorted”。文章还提供了Python、C++和Java的参考代码,展示了如何实现这一逻辑。算法的时间复杂度为O(n),空间复杂度为O(1)。
2025-05-18 18:14:54
76
原创 2025.05.17得物机考笔试真题第二题
《魔法消除》是一款字符串消除游戏,玩家通过点击消除相邻的两个相同字符,目标是将字符串变得尽可能短。题目要求输出最终消除后的字符串,若为空则输出0。解题思路是使用栈模拟消除过程:遍历字符串,若当前字符与栈顶字符相同则弹出栈顶,否则压入栈中。最终栈中剩余的字符即为结果。该算法的时间复杂度和空间复杂度均为O(n),适用于字符串长度不超过300,000的情况。参考代码提供了Python、C++和Java的实现。
2025-05-18 18:14:21
246
原创 2025.05.17得物机考笔试真题第一题
LYA 需要从第 1 块浮石跳到第 $n$ 块浮石,每块浮石上的魔法数字 $a_i$ 决定了她的跳跃范围。正数 $a_i$ 允许她向前跳,负数 $a_i$ 则允许她向后跳。每次跳跃消耗 1 单位时间,目标是找到最短时间到达终点,若无法到达则输出 -1。该问题可以转化为图论中的最短路径问题,使用广度优先搜索(BFS)算法求解。通过构建有向图,BFS 能够高效地找到从起点到终点的最短路径。代码实现中,使用队列进行 BFS 遍历,并记录每个节点的最短距离,最终输出终点的距离或 -1。
2025-05-18 18:13:46
141
原创 2025.05.17淘天机考笔试真题第三题
摘要 K小姐设计的树形公园由多个花坛组成,每个花坛中的花朵数量为整数。她的目标是通过删除若干条连接花坛的小路,将公园分割成多个独立区域,使得每个区域内的花朵总数都是偶数。问题要求计算对于每个$k (1 \leq k \leq n-1)$,删除$k$条小路后满足条件的方案数。若总奇数花坛数为奇数,则无解;否则,通过DFS计算每个子树中的奇数花坛数量,并确定“好边”(删除后两侧连通块奇数花坛数均为偶数的边)。最终方案数为从“好边”中选$k$条的组合数。时间复杂度为$O(n)$。
2025-05-17 18:52:33
733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人