简介: 莫队这个算法是莫涛提出的。 用于处理一类不带修改的区间查询问题的离线 算法,其核心在于利用曼哈顿距离最小生成树 算法对区间处理顺序进行处理 。 ——zrt课件 这个算法本质上其实是暴力,但是由于可以离线处理循环的顺序,使得复杂度可以从n^2降到n^根号n甚至更低。 对于可以找到以下特点的题可 ...
分类:
编程语言 时间:
2018-05-13 13:56:02
阅读次数:
224
1.拓扑排序算法 适用范围: 要求有向图, 且有入度为0的节点, 且没有环 2.最小生成树算法: (1).kruskal算法 适用范围: 要求无向图 (2).prim算法 适用范围: 要求无向图 3.Dijkstra算法 适用范围: 没有权值为负数的边 ...
分类:
编程语言 时间:
2018-04-28 16:50:13
阅读次数:
195
接着(一)start (二)广度优先搜索(BFS) 广度优先搜索(又称宽度优先搜索算法)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开 ...
分类:
其他好文 时间:
2018-04-14 23:04:12
阅读次数:
194
要讲Kruskal,我们先来看下面一组样例。 画出来更直观一些,就是上面的这张图。 智商只要不是0的(了解最小生成树是什么的童鞋)应该都知道要选择1<->4, 1<->2, 2<->3这三条边那么大家就会问为什么选择这三条呢。 一棵树边的数量等于这棵输的点的数量减1。(不信自己画画试试)这里不再解释 ...
分类:
编程语言 时间:
2018-04-06 17:31:36
阅读次数:
230
奇耻大辱 1.linux查看磁盘的命令 df -h 2.grep 的命令你熟悉吗? 3.redis的数据结构以及,算法与数据结构 4.深度遍历与广度遍历 5.图的最小生成树算法 6.linux命令之上传跟下载 7.树的遍历 8.spring的底层实现 9.23中设计模式 10.集合的接口以及set集 ...
分类:
其他好文 时间:
2018-03-30 13:19:48
阅读次数:
165
2018-03-06 17:42:02 一、最短路问题 问题描述:在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径。 这条路径就是两点之间的最短路径 (Shortest Path) 第一个顶点为源点 (Source) 最后一个顶点为终点 (Destination) 问题分类: ...
分类:
编程语言 时间:
2018-03-07 20:13:55
阅读次数:
248
1.带权图:要引入带权图,首先要引入最小生成树,当所有的边拥有相同的权值时。问题变得简单了,算法可以选择任意一条边加入最小生成树。但是当边有不同的权值时,需要用一些算法决策来选择正确的边。 2.带权图构建最小生成树算法: 2.1.从一个顶点开始,把它放入树的集合中,然后重复做下面的事情: 2.1.1 ...
分类:
编程语言 时间:
2018-02-27 23:31:53
阅读次数:
242
题目链接 : http://poj.org/problem?id=1679 1,图可能不是全部联通的,输出0(我的模板里没有这个判断) 2,首先做一次k..最小生成树算法,记录选取的边,然后枚举这些边,看在不考虑某条边(continue)的情况下是否还能得出和原来一样的最小cost(同样要考虑联通) ...
分类:
其他好文 时间:
2018-01-27 23:09:48
阅读次数:
152
一、普里姆算法 ①初始化新图仅包含原图中的任意一个顶点,不包含任何边。 ②从原图中选择一条权值最小的边,该边满足有且仅有一个顶点在新图中。将该边加入新图。 ③重复直至所有顶点都在新图中,新图即最小生成树。 二、克鲁斯卡尔算法 ①初始化新图包含原图中的所有顶点,不包含任何边。 ②从小到大遍历原图中所有 ...
分类:
编程语言 时间:
2018-01-25 00:33:05
阅读次数:
181
一、思路 枚举所有生成树的边权和值,对每一个枚举的边权和值sum,修改所有边的边权为(es[i].cost - sum * 1.0 / (N - 1))2,即方差公式的分子,然后跑最小生成树算法,同时记录边的原来的权值和,如果求出的“最小方差”生成树的边权值和为sum,那么,用这个"最小方差"去更新 ...
分类:
编程语言 时间:
2018-01-15 00:18:55
阅读次数:
441