
算法分析与设计
文章平均质量分 81
emandora
这个作者很懒,什么都没留下…
展开
-
2023 CSP-J题解
因此,我们要做的就是让每升油的油价尽可能的低。下同),我们可以办到这件事,但是当1号节点油价并不是最低价的时候,我们需要首先走到油价最低的站点,那就至少需要在前面的节点买油。实际上上述贪心的过程等价于下面的贪心:我们从前往后考虑每个节点,维护需求加油的数量(只保证可以走到下一个节点)num,加完油后走到下个节点后会剩下多少油last,以及历史(已经过节点)的最低油价mn。相对难处理的点在于每条边经过的时间限制,对于这一点,我们可以原地等待k的倍数时间达成(其实相当于出发时间晚了k的倍数时间)。原创 2023-10-31 22:02:37 · 1050 阅读 · 1 评论 -
旅行商问题的动态规划解法
解决思路:假设当前为一个规模为n且开始结点为0号结点的旅行商问题,那么,我们所要解决的问题可以转化为将0与{0,1,2,3…n}的有向(与集合中的顺序不一定一致)序列与0相连的最小值。假设这个最小值为k与0相连的情况下产生的,那么,我们又可以将问题分解为{0,1,2,…k-1,k+1,…n}的最优与k相连解加上k与0相连的距离耗费……综上所述,该问题可以划分成最优子问题的形式,故存在动态规划解法。 基于以上分析思考,我们可以将集合用二进制数来表示,其中每一个二进制位标识一...原创 2021-08-14 17:53:01 · 1663 阅读 · 0 评论 -
最大子矩阵和求解
目录问题概述:求解思路:1.求解一维矩阵的最大子段和2.相邻两行相加求解所得行最大字段和意义的分析3.最大和子矩阵问题的求解算法最大子段和求解代码:最大子矩阵和求解代码:时间复杂度分析:问题概述: 给定某矩阵,则存在一个子矩阵(可以为空)使该子矩阵的所有数字之和最大。求解这个最大和。求解思路:1.求解一维矩阵的最大子段和 我们假设b[j]表示以a[j]为结尾元素的最大子段和,在这样的条件下,我们可以得到b[j]的递推式为:...原创 2021-08-14 16:51:35 · 1620 阅读 · 0 评论 -
删去k数使余下数字最小
目录题目大意求解思路代码实现1.采用链表的实现方案:2.采用堆栈队列的实现方案:3.采用数组+假删策略的实现方案:时间复杂度分析方案对比题目大意: 给定一个数串s和一个数字k,问删除k个数后,数串最小为多少。求解思路:删除数字使子串最小的关键在于尽可能删除高位的较大数字。以1432219中删除3个数字为例,删除这一个数字就是从左边的高位1开始比较,当发现后一个数字比前一个数字小的时候我们就需要把前一个数字删除掉,否则就暂时保留这个...原创 2021-08-14 15:31:14 · 717 阅读 · 0 评论 -
二维矩阵目标值搜索
目录问题描述:实验任务实验过程及结果蛮力法求解问题描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。leetcode链接:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/ 实验任务采用二分搜索策略实现问题的求解程序,验证输入输出结果,并对以下三种设计算法的时间复杂度...原创 2021-07-30 13:40:50 · 1401 阅读 · 0 评论