- 博客(7)
- 收藏
- 关注
原创 SPFA经典优化
SPFA对于稀疏图非常的有用,然而对于稠密图就是辣鸡。。(还是很厉害的)。 稠密图可以使用dij,但是SPFA真的败给了稠密图了吗? 答案是不是的,优化强着呢,杠杠滴~优化一:SLF 怎么做呢? 假设我们当前在跑SPFA的最短路(下面都是)。 设我们的队头为i,要加进去队列的数为j,那么我们就可以根据最短路,加出如下优化 若dis[j]
2017-01-20 16:37:16 436
原创 浅谈最小生成树
简介 Kruskal(克鲁斯卡尔)算法是一种巧妙利用并查集来求最小生成树的方法。首先我们把无向图中互相连通的一些点成为处于同一连通块的。Kruskal算法将一个连通块仿作一个集合。Kruskal首先将所有的边按从小到大的顺序排序,并认为每一个点都是孤立的,分属于n个独立的集合。然后按顺序美剧每一条边。如果这条边链接着两个不同的集合,就把这两条边加入最小生成树,这两个不同的集合就合并了;如果...
2017-01-17 16:37:13 383 1
原创 浅谈单源最短路径(Spfa,Dijkstra)
Spfa Spfa是类似bfs的一种图论方法,运用队列更新dis[i],求得图中1~n的最短路径。Spfa中用到dis[i]表示图中每一点距离起点的长度,bz[i]用来记录编号为i的点是否入队,a[x,y]表示图中x~y之间的距离,b[x,i]表示编号为x的点的第i条边的终点,每次更新这个终点到起点的距离,以当前入队的点来更新,最后求出答案。 tov[i]表示编号为i的边的终...
2017-01-17 15:54:05 391 1
原创 浅谈RMQ
RMQ是英文Range Maximum(Minimum) Query的缩写,顾名思义是用来求某个区间内的最大值或最小值,通常用在要多次询问一些区间的最值的问题中。 RMQ的原理实际上是动态规划,我们用A[1..N]表示一组数,用[Li,Ri]表示题目中所涉及到询问区间。设F[I,J]表示从A[I]到A[I+2j2j2^{j}-1]这个范围内的最大值,也就是以A[I]为起点连续2j2j2...
2017-01-17 15:34:43 1205
原创 浅谈线段树
首先,线段树是一棵“树”,而且是一棵完全二叉树。同时,“线段”两字反映出线段树的另一个特点:每个节点表示的是一个“线段”,或者说是一个区间。事实上,一棵线段树的根节点表示的是“整体”的区间,而它的左右子树也是一棵线段树,分别表示的是这个区间的左半边和右半边。 在此我们可以举一个例子来说明线段树通常的构造方法,以RMQ问题为例: 有N个数排成一排,每次询问某一段中的最小数。 ...
2017-01-17 15:31:13 526
原创 逻辑的联通性
Description假如有命题p 一定能推出命题q,则称p 是q 的充分条件,q 是p 的必要条件。 特别的,当p 既是q 的充分条件,又是q 的必要条件时,称p 和q 互为充要条件 现在有n 个命题,其中一些是另一些的充分条件。请问有多少对命题互为充要条件?Input第一行三个正整数n,m,分别表示命题数、已知关系数 接下来m 行,每行两个正整数p 和q,表示命题p 是命题q 的充分条件S
2017-01-21 21:47:58 343
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-01-17 15:22:51 207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人