- 博客(8)
- 收藏
- 关注
原创 STL--BFS(广度优先搜索)
广度优先搜索又名bfs,广搜。 它是基础算法之一,对初学者来说比较难懂。 它是利用优先队列来进行图的便历。 而普通的bfs我就不粘贴于此了。 但是我还是来说一说广度优先搜索吧!struct node{ int x,y,t; bool operator< (node o)const{ return t>o.t;//满足堆的性质 } };int bfs(i
2016-09-24 20:12:11 778
原创 RMQ之ST算法
ST算法是RMQ问题的一个算法,其实就是寻找区间的最值。 主要操作: 首先是预处理,用一个DP解决。设a[i]是要求区间最值的数列,f[i,j]表示从第i个数起连续2^j个数中的最大值。例如数列3 2 4 5 6 8 1 2 9 7 ,f[1,0]表示第1个数起,长度为2^0=1的最大值,其实就是3这个数.f[1,2]=5,f[1,3]=8,f[2,0]=2,f[2,1]=4……从这里可以看出
2016-09-08 14:05:05 218
原创 treap树的操作--查找区间第k大
treap树是线段树的升级版。 可以快速的进行区间第k大数的查询。 ~但是还是认为splay好用(^_^).进入正题: treap是树和堆的有效结合,可以优化普通的线段树。 而红黑,AVL还是有点复杂。 treap的操作有插入,左旋,右旋。其实原理比较简单,在树中维护一个”优先级“,”优先级“ 采用随机数的方法,但是”优先级“必须满足根堆的性质,当然是“大根堆”或者“小根堆”都无所谓,比
2016-09-07 13:59:23 1620
原创 k-th number(主席树 )
题意:给一堆数,找区间第k大的数。主席树是指在一棵树的基础上复制一棵树,同时又在其中加入一个点。 可以用来查询第k大的点。 这个与直接建立多颗线段树还是有区别的。 这个复制可以节省很多内存~代码如下:#include<cstdio> #include<algorithm> #include<cmath> #include<cstring> using namespace std; const
2016-09-06 20:43:59 412
原创 spfa--Bellman-Ford的队列优化
spfa是一种神奇的最短路算法。 它既可以快速的找最短路,有可以判断负循环。 还是很好用的。 代码也比较简单。 STL; 核心思想: 与其他的思想差不了多少,不断的判断。 如果这个点的距离被更新,它附近的点也会进队列的。 只是多了个判断。 ~因为负权环会无限的进入队列。
2016-09-06 20:36:33 482
原创 zkw线段树
~这是哪一题我不记得了~ zkw(重口味)线段树,是一个神奇的东西。 它可以支持区间快速查询和修改的操作。 现在我来介绍一下这个神奇的线段树吧!
2016-09-06 14:08:55 288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人