07 2018 档案
摘要:定义 对于连通的无向图G(V,E),如果一个E的无环子集T,可以连接所有节点,并且又具有最小权重,称树g(V,T)为图G(V,E)的最小生成树。 #伪代码 Kruskal算法和Prim算法均使用贪心策略实现,两者的实现框架可由下列伪代码表示,首先,是一些叙述时使用的概念。 集合A 某棵最小生成树的子
阅读全文
摘要:Honeymoon Hike 题目链接; 解题思路 这道题主要使用了搜索,二分,枚举算法, 对于搜索:DFS的时间复杂度为O(V+E),V ⇐ 10000 ,E ⇐ 40000; 对于二分:时间复杂度 为 lg(n); n<=200; 对于枚举:时间复杂度为 :O(n); n ⇐ 200; 所以总体
阅读全文
摘要:定义 拓扑排序是图G的所有节点的一种线性次序,该次序满足下列条件:如果图G包含边(u,v), 则节点u在拓扑排序中处于节点v的前面(如果图G中包含环路,则不可能排出一个线性次序)。 也可以说,u,v之间存在一条可达路径,则u的拓扑序在v的前面。 算法 DFS 发现时间 d:该节点第一次被发现。 完成
阅读全文
摘要:Big Christmas Tree 题目链接 解题思路 price of an edge will be (sum of weights of all descendant nodes) × (unit price of the edge). 每条边的代价为孩子节点总重量的和*边的单位代价; 通过
阅读全文
摘要:有向图的传递闭包是Floyd warshall 算法的一种应用(主要参考算法导论) 传递闭包的定义 对于有向图$G(V,E)$的传递闭包即是$G(V,E^{})$,其中$E^{}={(i,j)|图G中包含一条由i到j的路径}$。 Floyd warshall 传递闭包算法 Floyd warshal
阅读全文
摘要:Floyd_warshall 算法 使用条件及时间复杂度 Floyd warshall 算法适用于无负环的有向图中的所有点对之间的最短路径,容易看出时间复杂度为O(v^3)。 代码实现 void floyd_warshall() { int tmp; for(int k = 1; k <= n; +
阅读全文
摘要:主要参考算法导论 基本性质 使用min_w(s,v)表示源节点s到v的最短路径长度; w(u,v)表示节点u到v的权重; u.d表示源节点s到节点u的当前路径长度; 松弛操作 relax(u,v,w) { if(u.d + w < v.d) { v.d = u.d + w; } } 三角不等式 mi
阅读全文

浙公网安备 33010602011771号