摘要: 对有根树T进行DFS,将遍历到的结点按照顺序记下,我们将得到一个长度为2N – 1的序列,称之为T的欧拉序列F每个结点都在欧拉序列中出现,我们记录结点u在欧拉序列中第一次出现的位置为we(u)例如下面图片中的一棵树:欧拉序列(QQ):1 2 5 2 6 2 1 3 1 4 1深度序列(DP): 1 2 3 2 3 2 1 2 1 2 1根据DFS的性质,对于两结点u、v,从pos(u)... 阅读全文
posted @ 2010-11-07 18:45 forever zsz 阅读(487) 评论(0) 推荐(1) 编辑
摘要: 问题是求区间最值问题。你当然可以写个O(n)的(怎么写都可以吧=_=),但是万一要询问最值1000000遍,估计你就要挂了。这时候你可以放心地写一个线段树(前提是不写错)应该不会挂。但是,这里有更简单的算法,就是ST算法,它可以做到O(nlogn)的预处理,O(1)地回答每个询问。来看一下ST算法是怎么实现的(以最大值为例):首先是预处理,用一个DP解决。设a[i]是要求区间最值的数列,f[i,j... 阅读全文
posted @ 2010-11-07 14:44 forever zsz 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 题目描述见下列网址http://www.tyvj.cn/ (P1153)经过对题目的分析,可以得出,题目的要求就是求出图中的强连通分量连,然后进行缩点操作,最后枚举每一个入度为0的点,如果可以有间谍的话,将贿赂所消耗的钱累加,否则的话记录下入度为0的点中最小点的标号。分析: 1.对强连通分量的求解使用TARJAN算发(因为数据量太大,3000,如果直接使用DFS的话为n^2+M,可能会超时)。 2... 阅读全文
posted @ 2010-11-07 10:40 forever zsz 阅读(766) 评论(0) 推荐(1) 编辑
摘要: 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(stronglyconnected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(stronglyconnectedcomponents)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。Tarjan算法是... 阅读全文
posted @ 2010-11-07 07:43 forever zsz 阅读(459) 评论(1) 推荐(1) 编辑