题目:http://acm.hdu.edu.cn/showproblem.php?pid=5274
在树上的询问和操作,每次修改单点值,询问两点之间出现次数为奇数的点权是什么,若没有输出-1.询问保证两点间至多只有一个数出现奇数次。
有一种经典的将树上的点转化成序列的方法,我们用dfs遍历这棵树,那么对于一个节点,他一点比他的子树即子节点先访问到,且当他的最后一个子节点的所有子树也都...
分类:
其他好文 时间:
2015-07-03 09:14:46
阅读次数:
119
题意:一个村子有n个房子,他们用n-1条路连接起来,每两个房子之间的距离为w,有m次询问,每次询问房子a,b之间的距离是多少。
分析:最近公共祖先问题,建一棵树,求出每一点i到树根的距离d[i],每次询问a,b之间的距离=d[a]+d[b]-2*d[LCA(a,b)];LCA(a,b)是a,b的最近公共祖先。
#pragma comment(linker, "/STACK:1024000000...
分类:
编程语言 时间:
2015-06-29 14:52:31
阅读次数:
164
POJ 1330 Nearest Common Ancestors (LCA 求两个点的最近公共祖先)...
分类:
其他好文 时间:
2015-06-25 19:42:17
阅读次数:
197
HDU2586 How far away ?(LCA模板题)...
分类:
其他好文 时间:
2015-06-25 15:35:39
阅读次数:
109
题意异常的简单。就是给定一个邻接矩阵,让你判定是否为树。算法1:O(n^3)。思路就是找到树边,原理是LCA。判断树边的数目是否为n-1。39-th个数据T了,自己测试2000跑到4s。算法2:O(n^2)。思考由图如何得到树,显然MST是可行的。因此,题目变为直接找到MST。然后通过树边构建目标矩...
分类:
其他好文 时间:
2015-06-24 00:38:21
阅读次数:
150
Dylans loves tree
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 747 Accepted Submission(s): 144
Problem Description
Dylans i...
分类:
其他好文 时间:
2015-06-23 20:11:00
阅读次数:
197
pog loves szh III
Accepts: 63
Submissions: 483
Time Limit: 12000/6000 MS (Java/Others)
Memory Limit: 131072/131072 K (Java/Others)
问题描述
pog在与szh玩游戏,首先pog在纸上画了一棵有根树,这里我们定义1为这...
分类:
其他好文 时间:
2015-06-22 06:27:55
阅读次数:
141
一、什么是LCA?LCA:Least Common Ancestors(最近公共祖先),对于一棵有根树T的任意两个节点u,v,求出LCA(T, u, v),即离跟最远的节点x,使得x同时是u和v的祖先。二、算法分类 求LCA的算法很多,按照是否在线可以分为在线算法和离线算法。在线算法:用比较长的时....
分类:
其他好文 时间:
2015-06-17 23:01:10
阅读次数:
116
给定二叉查找树中的两个节点,求它们的最近公共祖先(Lowest Common Ancestor - LCA)。
在详细介绍之前,可以先参考下这篇文章"二叉树(70) - 最近公共祖先[1]"
函数原型定义如下:
Node *getLCA(Node* root, int n1, int n2)
其中n1和n2是指定的两个节点值。
例如, 上述BST中,10和1...
分类:
其他好文 时间:
2015-06-16 01:22:54
阅读次数:
201