补坑补坑((╯‵□′)╯︵┻━┻) 内容真的多... 一个一个来吧. 首先是最小生成树. 先讲一下生成树的定义 生成树就是在一张图上选取一些边,使得整个图上所有的点都连通. 那么我们要求的最小生成树有两种算法可以求:1.prim算法,2.kruskal算法 我们先讲讲prim算法 prim算法有点像最短路中的dijstra,操作都几乎一样,原理就是从所有在队列中的点出发,找到最小的一条边,并把它连起来,这样子能够保证局部最优性. 在此我不讲这种算法,不过有兴趣的人可以去学一学. 我重点推出的是k…
经过12天的滚粗,终于迎来了暑期培训的结尾啦QAQ 结业考才考了90分,真是对不起孙爷(孙爷请收下我的膝盖) orz小粉兔怒D rank 1 获得小粉兔一只QAQ 由于这次12天的培训题目又比较多,算法较难,所以只能等到课程结束之后再来补坑了. 现在开始补坑(BEGIN大工程!!) day1主要知识:最短路+two-sat 首先是最短路: 对于最短路目前我们大部分人用的就是两种算法: 一.dijkstra算法: dij算法基于的思想就是每次从所有已拓展的节点相连的未拓展的节点取出一个dis值最小…
看到题就可以想到差分约束 判断负环要用dfs,bfs-spfa会TLE 4个点 bfs-spfa #include <cstdio> #include <algorithm> #include <queue> #include <cstring> #include <iostream> using namespace std; ; ; ,u[MAXM],v[MAXM],w[MAXM],first[MAXN],next[MAXM]; bool vi…
正常spfa中加入time数组,循环判断一个点是否入队并更新了n次以上注意是 > n!!其余的没有什么问题 扩展的还有,寻找所有负环上的点,这个可以在spfa中time 发现负环的时候,对那个点进行dfs操作,找到所有的负环上的点即可 void dfs(int u) { cir[u] = 1; for(int i = id[u];~i;i = edge[i].pre) { if(!cir[edge[i].to]) dfs(edge[i].to); } } 一下负权回路代码以poj3259为例(p…
补坑咯~ 今天围绕的是一个神奇的数据结构:线段树.(感觉叫做区间树也挺科学的.) 线段树,顾名思义就是用来查找一段区间内的最大值,最小值,区间和等等元素. 那么这个线段树有什么优势呢? 比如我们要多次查询1-n中的最大值,那么我们如果使用暴力来查找,那么我们每次查找的复杂度就是O(n) 但是如果我们把一个个区间变成树上的一个个点,并且我们严格保证树的深度,那么我们每次查找的复杂度就是O(logn) 这样就能让查询变得更快. 我们先简单讲一下线段树的存储(图中的标号就是线段树数组标号) 这就是线段…
补坑ing... 好吧,这是第二天. 这一天我们主要围绕的就是一个人:tarjan......创造的强联通分量算法 对于这一天的内容我不按照顺序来讲,我们先讲一讲强联通分量,然后再讲割点与桥会便于理解 首先是强联通分量.. 所谓强联通分量即在一个集合中,所有的点都能互通,那么我们就称这一整个集合是一个强联通分量 那么我们怎么求一张图中有几个强联通分量呢? 首先我们要了解tarjan算法中最重要的2个数组(dfn数组:表示该点第一次出现在DFS序列中的时刻;low数组:表示该点所能追溯到的编号最小…
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1074 题意:有n个城市,每一个城市有一个拥挤度ai,从一个城市I到另一个城市J的时间为:(aJ-aI)^3,存在负环.问从第一个城市到达第k个城市所花的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间 只要用spfa判断一下负环然后和负环上点相关联的点都可以实现距离无线小所以如果是关联点标记一下. 如果遇到标记点就没有必要再入队,减少复杂度 #include <io…
http://poj.org/problem?id=3259 Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at a time that is BEFOR…
Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 49962   Accepted: 18421 Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way p…
补坑补坑.. 其实挺不理解孙爷为什么把这两个东西放在一起讲..当时我学这一块数据结构都学了一周左右吧(超虚的) 也许孙爷以为我们是省队集训班... 好吧,虽然如此,我还是会认真写博客(保证初学者不会出现看不懂的情况啦,如果有的话可以在博客下方留言QAQ,我会尽量解答的..) 首先先讲一下倍增: 倍增的思想是这样的: 比如我们知道a[1]->a[2],a[2]->a[3],a[3]->a[4]这样的关系 那么我们如果按照普通的方法通过a[1]->a[4]的话,那么我们要将所有的情况遍…