码迷,mamicode.com
首页 >  
搜索关键字:树边    ( 381个结果
ZOJ 3820:Building Fire Stations(树的直径 Grade C)
题意:n个点的树,边长全为1,求找出两个点,使得树上离这两个点距离最远的那个点,到这两个点(中某个点就行)的距离最小。思路:求树直径,找中点,删除中间那条边(如果直径上点数为奇数,则删任何一侧都可),分成两个子树,再求中心,即为答案。代码://14:12#include #include #incl...
分类:其他好文   时间:2014-10-15 15:45:11    阅读次数:197
hdu 2586 How far away? (LCA模板)
题意:N个点,形成一棵树,边有长度。M个询问,每个询问(a,b),询问a和b的距离思路:模板题,看代码。DFS预处理算出每个结点离根结点的距离。注意:qhead[maxn],而不是qhead[maxm]。输出用%I64d,不要用%lld。C++ RE后 尝试用 G++交。代码:struct node...
分类:其他好文   时间:2014-10-05 00:01:07    阅读次数:267
HDU 4812 D Tree 树分治+逆元+hash新姿势
题意: 给定n个点的树 K 下面n个数是点权 下面n-1行给出树边。 问: 是否存在一条路径使得路径上点权积 % mod  = K 若存在则输出路径的两端。 若存在多条路径则输出字典序最小的一条。 思路: 按树重心分治。 分成路径是否经过树重心。 然后用力码。。 has[x] = u; 表示乘积为x 对应的点是u 但这样has就不能用计数器来优化清空。 ...
分类:其他好文   时间:2014-10-04 23:30:27    阅读次数:231
POJ3352-Road Construction(边连通分量)
题目链接 题意:问要添加几条边才能使所给无向图图变成边双连通图。 思路:一个有桥的连通图,如何把它通过加边变成边双连通图?方法为首先求出所有的桥,然后删除这些桥边,剩下的每个连通块都是一个双连通子图。把每个双连通子图收缩为一个顶点,再把桥边加回来,最后的这个图一定是一棵树,边连通度为1。 统计出树中度为1的节点的个数,即为叶节点的个数,记为leaf。则至少在树上添...
分类:其他好文   时间:2014-10-04 00:30:55    阅读次数:201
SPOJ QTREE Query on a tree --树链剖分
题意:给一棵树,每次更新某条边或者查询u->v路径上的边权最大值。解法:做过上一题,这题就没太大问题了,以终点的标号作为边的标号,因为dfs只能给点分配位置,而一棵树每条树边的终点只有一个。询问的时候,在从u找到v的过程中顺便查询到此为止的最大值即可。代码:#include #include #in...
分类:其他好文   时间:2014-10-01 12:00:11    阅读次数:254
HDU 5052 Yaoge’s maximum profit 裸树链剖分 2014 ACM/ICPC Asia Regional Shanghai Online
题意: 给定n个点的带点权树。 下面n行给出每个点点权表示每个点买卖鸡腿的价格 下面n-1行给出树边 下面Q个操作 Q行 u, v, val 从u走到v,过程中可以买一个鸡腿,然后到后面卖掉,输出max(0, 最大的收益) 然后给[u,v]路径上点点权+=val 思路: 树链剖分裸题 屌丝题解:点击打开链接 #pragma comment(linker, "/STA...
分类:其他好文   时间:2014-09-28 18:19:26    阅读次数:288
HDU Tree LCA 2014 ACM/ICPC Asia Regional Shanghai Online
题意: 给定n个点的树,m个操作 树有点权和边权 下面n-1行给出树边 下面m行操作 : ● ADD1 u v k: for nodes on the path from u to v, the value of these nodes increase by k. ● ADD2 u v k: for edges on the path from u to v, the value...
分类:其他好文   时间:2014-09-27 20:30:00    阅读次数:202
【转载】深度优先搜索代码
本文章代码中的图用邻接矩阵来表示,所以算法复杂度为O(V^2)。如果用邻接表来表示,那么算法的复杂度为O(V+E)。DFS可用来判断图中是否有环,展现无向图中的连通分支。通过DFS,形成一个由多棵深度优先树所组成的深度优先森林。将原先图中的边添加到该森林之后,可以将所有边定义为以下四类:1. 树边:...
分类:其他好文   时间:2014-09-19 19:00:25    阅读次数:130
(转载)tarjan求割点
割点是无向图中去掉后能把图割开的点。dfs时用dfn(u)记录u的访问时间,用low(u)数组记录u和u的子孙能追溯到的最早的节点(dfn值最小)。由于无向图的dfs只有回边和树边,且以第一次dfs时的方向作为边的方向,故有: low=min{ dfn(u), dfn(v),若(u,v)为回边(非....
分类:其他好文   时间:2014-09-16 20:31:50    阅读次数:175
判断图中是否有环的方法
一、无向图 方法一:n算法:  原理是: 如果存在回路,则必存在一个子图,是一个环路。环路中所有顶点的度>=2。      第一步:删除所有度      第二步:将度数变为1的顶点排入队列,并从该队列中取出一个顶点重复步骤一。        如果最后还有未删除顶点,则存在环,否则没有环。 方法2: DFS搜索图,图中的边只可能是树边...
分类:其他好文   时间:2014-08-22 09:22:16    阅读次数:406
381条   上一页 1 ... 35 36 37 38 39 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!