自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 1-9 功夫传人

输入建图(从字符串或结构化信息中建树);树的广度优先遍历(BFS);浮点运算精度控制(乘法放大与折扣计算);类型选择与边界处理(如功力使用double,最终结果强转long long防止溢出)。

2025-05-23 09:01:14 577

原创 1-10 垃圾箱分布

编号统一管理思路:将G1~GM映射为N+1~N+M是解决混合节点编号的关键;Dijkstra 模板的灵活运用:通过对每个候选垃圾箱执行 Dijkstra,有效实现“从点到多点”的距离计算;多重比较条件处理逻辑清晰,可扩展性强,适合用于实际工程中的多指标优化问题。

2025-05-21 11:23:04 594

原创 1-7 网红点打卡攻略

这道题主要是考察图的遍历和路径合法性判断,涉及到图的构建、路径合法性检查和最短路径计算等方面,重点在于如何合理处理图的表示、路径的合法性及其花费的最小化。图的表示使用二维数组来表示网红点之间的通路费用,初始设为无穷大 (INF),这使得我们可以在后续操作中方便地检测两个点之间是否有通路。通过读取每一条通路,动态更新图中两点之间的费用。路径合法性验证对于每条待检验的攻略,我们要验证其是否符合两个基本要求:是否访问了所有网红点且没有重复的点。是否能够从家出发,逐个经过所有网红点,最后回到家。使用。

2025-05-19 18:57:40 842

原创 7-3 大整数相乘运算

这道题考察了大数运算的基本实现,对于无法直接使用内置数据类型的情况,需要手动模拟位运算。通过这道题:我理解了如何用数组来存储大数的每一位,并模拟竖式运算。熟悉了处理字符串中的负号以及前导零的处理。进一步掌握了 C++ 中vector的使用,尤其是如何高效处理多位运算。同时,在实际实现过程中,处理边界情况(比如输入是0或者结果超限)也十分重要,体现了对问题的全面考虑。

2025-05-16 12:45:19 305

原创 1-8 悄悄关注

数据结构选择合理通过使用来存储关注列表,可以在常数时间内判断某个用户是否在关注列表中,避免了重复遍历的问题。时间复杂度和空间复杂度时间复杂度主要由读取数据、筛选用户和排序操作组成,整体表现较好,符合题目对最大输入规模的要求。细节处理排序时使用了标准的字母序排序,保证输出的用户ID按照字母顺序排列。进一步优化的思路如果筛选出的可疑用户数量较少,可以考虑优化排序部分,选择更高效的排序算法或者根据条件直接生成输出。

2025-05-14 15:52:22 747

原创 1-8 多项式A除以B

使用map存储多项式是一个非常合适的选择省去了手动排序和去重的复杂性。方便直接按照指数顺序访问项。多项式的除法逻辑清晰明了对于每一项,通过匹配最高项的指数和系数来逐步消除,模拟了手动除法的步骤。格式化输出的细节注意空格、0 的显示和小数点的处理,避免格式错误。改进思路可以优化多项式的相减逻辑,减少不必要的内存拷贝。如果有很多零项,可以考虑使用来减少插入和查找时间。

2025-05-12 15:02:19 1322

原创 1-8 病毒溯源

树的构建与遍历这道题目利用邻接表构建有向无环图,采用 DFS 遍历树,寻找最长路径。深度优先搜索在路径遍历问题上非常自然,递归的方式简洁明了。字典序的巧妙处理C++ 的 vector 本身支持字典序的比较,避免了手动编写复杂的比较逻辑。边界条件的良好处理通过入度统计找到唯一的源头节点,避免了循环图的判断,逻辑简洁清晰。优化与改进这道题目已经接近最优,优化空间有限,理论上可以用 BFS + 拓扑排序来做,但 DFS 的路径记录更自然。可以进一步优化内存使用,减少 vector 的多次拷贝。

2025-05-09 12:56:51 738

原创 1-10 目录树

树形结构是解决路径组织问题的优选方案这道题目本质是路径树的构建,通过树结构存储每个路径的节点,实现多级目录的递归展示。合理的数据结构选择优化查询效率使用map存储子节点能天然保持字典序,简化了排序逻辑。直接在插入时管理是否是目录或文件,避免后续多余的判断。递归打印清晰直观递归是最自然的目录遍历方式,通过缩进来表示深度,代码可读性高且简洁。分离逻辑简化复杂度splitPathinsertPath和printTree逻辑清晰,模块化分离降低了复杂度,易于维护。

2025-05-08 12:22:28 550

原创 1-5 彩虹瓶

模拟问题的理解:这个问题本质上是一个栈模拟问题,要求我们遵循一个固定的装填顺序。栈的特性非常适合解决“先进后出”的问题,尤其在临时货架的管理上。优化思路:每当遇到一个不能直接装填的箱子,我们将其放入栈中,并且确保在栈不超过容量限制的情况下进行操作。边界处理:代码考虑了货架满了时的情况,以及最后是否能够按照正确的顺序从货架取出箱子。复杂度分析:本题的时间复杂度为 O(K * N),适用于题目给定的最大 N 和 K。

2025-05-06 08:10:12 697

原创 1-9 修理牧场

这个问题是一个典型的贪心算法问题,通过合理使用堆来减少每次合并的时间复杂度,确保能在合理的时间内解决大规模问题。使用优先队列(最小堆):这是解决此类最小合并成本问题的标准方法,通过优先队列可以高效地每次提取最小的木段进行合并。贪心策略:每次选择最小的两个木段合并,这是一种贪心策略,能够确保得到最小的总花费。空间复杂度:由于使用了优先队列存储所有木段,空间复杂度是 O(n)O(n)O(n)。优化问题:通过堆优化了每次合并的操作,使得时间复杂度较低,适合解决大规模问题。

2025-05-02 19:54:49 689

原创 macOS的conda、brew等等环境到底有什么区别

简介:Anaconda/Miniconda 提供的包和环境管理器,既可以管理 Python 环境,也可以管理非 Python 依赖(如 numpy, gcc, r)。简介:macOS 和 Linux 的软件包管理器,用于安装开发工具和系统依赖(如 git、python、gcc、node 等)。简介:版本控制系统,用于代码管理(与 brew 无关,是用 brew 安装的常见工具之一)。简介:Python 官方的虚拟环境工具,用于创建轻量的隔离开发环境。• 可以创建多个环境,每个环境可安装不同版本的库。

2025-05-01 23:53:39 616

原创 1-9 冰岛人

这道题目考察了以下几个关键点:对特定命名规则的处理能力家族关系的建模和遍历边界条件的处理(如人物不存在的情况)代码实现上可以进一步优化的地方:可以预计算并存储每个人的祖先集合,以空间换时间可以添加更多错误处理(如姓氏格式验证)可以考虑更高效的数据结构来加速共同祖先检查。

2025-04-29 17:30:11 422

原创 Macbook本地部署Dify

设备:MacBook Pro(M1Pro)内存:16GB系统版本:macOS 15.1Docker版本:4.40.0。

2025-04-25 11:06:43 1795

原创 1-6 朋友圈

这个题目是一道典型的图论入门并查集题目。其关键点在于:合理建模:学生 → 节点,朋友圈 → 连通块正确使用并查集维护关系最后统计最大朋友圈规模。

2025-04-23 08:33:34 360

原创 1-7 红色警报

1. 邻接矩阵构建无向图2. DFS 搜索未失陷城市组成的连通区域3. 重点知识- DFSv < n;++v)if (!- 计算连通区域数i < n;++i)if (!lost[i] &&!4. 反思与优化:当前解法每次都重新 DFS 整张图,性能可接受,但可考虑并查集优化,提升效率。

2025-04-22 08:48:17 451

原创 1-6 玩转二叉树

二叉树的重建前序遍历的第一个节点总是根节点,中序遍历可以帮助我们划分左右子树。使用哈希表()存储中序遍历的值和索引,可以快速找到根节点的位置,提高重建效率。镜面反转镜面反转实际上就是交换每个节点的左右子树。可以通过递归或迭代的方式实现。递归实现简单直观,但需要注意节点为空时返回。层序遍历层序遍历通常使用队列实现,属于广度优先搜索(BFS)的应用。优化与改进重建二叉树时,可以通过传递子数组的索引范围来避免频繁拷贝数组,提高效率。

2025-04-16 11:20:36 373

原创 1-4 古风排版

这道题主要考察的是二维数组和字符串切片的知识点。题目本身不难,但是在逻辑上有些绕;应对这种题目,我们可以通过举例子的方式帮助来理清逻辑,然后找到最适合的数据结构进行解决。本体的基本解题思路在“解题思路&分析结果”模块进行了具体的讲解,希望能对大家的解题有所帮助。

2025-04-15 10:11:15 398

原创 1-9 堆宝塔

1.根据题目给出的信息,我们不难发现,该题目适合使用栈的结构进行解决,一共需要建立两个栈,分别模拟两个宝塔。2.对于每个个圆环来说,每个新圆环按照大小关系被有序地放置在A柱或B柱中。如果无法继续放置,则将当前A柱的内容保存为一个完成的宝塔,并清空以重新构建。3.该题目的核心在于通过合理地在两个柱子之间转移圆环,实现尽可能多的塔构建,并记录其中最高的塔高度。最本质的算法核心则是贪心算法的思想。4.

2025-04-11 13:05:08 1501

原创 1-5 抢红包

最开始尝试使用数组的方式进行解决,但是因为涉及的数据内容较多,而且数组进行排序的效率较低,因此在尝试了一下便决定使用Struct结构体用于存储一个人的所有信息,包括红包金额,抢红包的次数等等。

2025-04-09 19:31:34 298

原创 7-7 约瑟夫问题

1.利用队列的数据结构进行解决。2.pos变量表示当前报数的位置。3.(pos + m - 1) % people.size()来表示循环的过程。4.利用result表示出圈顺序。5.用earse删除圈里的人,不断重复,直到列表为空。在看到经典问题时,我们可以想到利用特殊的数据结构进行解决;约瑟夫环问题就可以用两个队列分别模拟圈内的情况和出圈的顺序,并通过%实现循环的效果,完美解决约瑟夫环问题。

2025-04-07 10:36:17 208

原创 7-9 趣味游戏

如果取长度为 2 的区间可以取:(4,2) (2,3) (3,1),这 3 个区间的次大数的和为 2 + 2 + 1 = 5。如果取长度为 3 的区间可以取:(4,2,3) (2,3,1),这 2 个区间的次大数的和为 3 + 2 =5。游戏的规则是请同学们快速计算出,如果在这 N 名同学的小组中,取出所有区间长度 >=2 的。因此,所有长度 >=2 的包含连续数的区间中的次大数的和为 5 + 5 + 3 = 13。如果取长度为 4 的区间可以取:(4,3,2,1),这 1 个区间的次大数的和为 3。

2025-04-03 08:56:06 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除