算法设计与分析
HIT算法设计与分析课程习题的部分题解
xyzhang2018
这个作者很懒,什么都没留下…
展开
-
[算法]-最短路径算法总结
Dijkstra最短路径算法按路径长度的递增次序,逐步产生最短路径的贪心算法基本思想:首先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依次类推,直到从顶点v 到其它各顶点的最短路径全部求出为止。时间复杂度为O(n2)算法流程:首先选定源点1,建立邻接矩阵C[5] [5],初始化三个数组分别为D[n],P[n],S[n],分别用来存储从源点到对应点的最短距离和最短路...原创 2019-11-17 17:51:01 · 2322 阅读 · 1 评论 -
算法 - 判断最小割唯一性
本文转自:https://blog.csdn.net/chenzhenyu123456/article/details/48048749详细请查看原文N supercomputers in the United States of Antarctica are connected into a network. A network has a simple topology: M differ...转载 2019-05-26 22:10:53 · 1193 阅读 · 0 评论 -
算法 - 最小生成树(Kruskal算法)
Kruskal算法Input 图G(V,E) ,权值函数WOutput 最小生成树所包含的边初始化返回边集A为空将输入的边权值按照递增顺序排序将每个顶点建立起一个集合for (u,v)属于Eif u,v不在同一个集合中 //说明该边不在同一个连通图中 将边(u,v)添加到返回集合A中 合并set(u),set(v) //合并集合u,vreturn A...原创 2019-04-11 17:20:48 · 280 阅读 · 0 评论 -
算法 - 0/1背包问题(动态规划)
0/1 Knapsack Problem假设我们有 n 件物品,分别编号为 1, 2 . . . n。其中编号为 i 的物品价值为 vi,它的重量为wi。为了简化问题,假定价值和重量都是整数值。现在,假设我们有一个背包,它能够承载的重量是 W。现在,我们希望往包里装这些物品,使得包里装的物品价值最大化,那么我们该如何来选择装的东西呢?该问题子问题具有重叠性,且存在优化子结构(可利用剪切粘贴...原创 2019-03-31 20:33:20 · 960 阅读 · 0 评论 -
算法 - The Skyline Problem/轮廓问题
如下图 A 所示,已知多个矩形建筑物的左右边界位置以及高度(建筑物都是贴地的)[li, hi, ri] ;由此可见多个矩形建筑物在二维的平面上存在重叠的可能,我们需要求得重叠后的建筑轮廓:为了表示重叠后的建筑的轮廓的结果,在这里我们只需要存储轮廓每个横向线段的最左边的点即可(如下图 B 的轮廓,红色的点即为储存点),最后还需要取得轮廓的最右边的结束点,即一个形式为 (xn, 0) 的点,表示轮廓结...原创 2019-03-24 10:21:30 · 2074 阅读 · 0 评论 -
算法 - 集合划分问题
集合 X 的划分是 X 的非空子集的集合,使得每个 X 的元素 x 都只包含在这些子集的其中一个内。等价的说,X 的子集的集合 P 是 X 的划分,如果:(1) P 的元素都不是空集。(注:某些定义不需要这个要求)(2) P 的元素的并集等于 X。(我们称 P 的元素覆盖 X。)(3) P 的任何两个元素的交集为空。(我们称 P 的元素是两两不相交。)例子: 集合 {1, 2, 3} 有...原创 2019-03-21 11:44:34 · 2974 阅读 · 0 评论 -
算法 - 快速幂取模
计算 an % b,其中 a,b 和 n 都是 32 位的非负整数。例子:Example: 231 % 3 = 21001000 % 1000 = 0问题描述:输入:a、b、n输出:快速幂结果普通方法:long long calculate(long long a,long long b,long long n){ long long sum = 1; for(long l...原创 2019-03-20 22:35:40 · 180 阅读 · 0 评论