题目大意:给出一棵树,有n个问题,询问在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和。
思路:不会,然后看了题解,之后发现自己智商严重不足。
看到数据范围就知道一定要离线处理,就这个离线处理我估计以我的智商不看题解是肯定想不出来的。。
考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,...
分类:
其他好文 时间:
2014-11-28 18:22:08
阅读次数:
217
Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出l r z,求sigma_{l#include#include#include#i...
分类:
其他好文 时间:
2014-11-28 18:09:06
阅读次数:
132
管道和FIFO管道(pipe) 管道在Unix及Linux进程间通信是最基础的,很容易理解。管道就像一个自来水管,一端注入水,一端放出水,水只能在一个方向上流动,而不能双向流动。管道是典型的单向通信,即计算机网络中所说的“半双工”。管道又名匿名管道,所以只能用在具有公共祖先的进程之间使用,通常使用在...
分类:
其他好文 时间:
2014-11-28 11:42:25
阅读次数:
171
Full Binary Tree
Time Limit: 2000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
In computer science, a binary tree is a tree data structure in which each node has at most two children...
分类:
其他好文 时间:
2014-11-27 20:34:56
阅读次数:
192
题意: 给出一些名字,名字间有父子关系,有三种操作:1.按祖先到后代,兄弟间按字典序由小到大排序,然后输出2.求某个节点的兄弟节点有多少个,包括自己(注意,根节点的兄弟节点是1)3.求节点a和b的公共祖先 (注意:如果公共祖先是a或b,必须要输出其父亲,与传统的LCA可以是自己不同)解法: 先把整棵...
分类:
其他好文 时间:
2014-11-09 23:32:59
阅读次数:
289
题意给一颗树,再给一个查询两点之间的最近公共祖先。#include#include#include#include#includeusing namespace std;const int maxn = 111111;struct edge{ int to; int next;}e[maxn ...
分类:
其他好文 时间:
2014-11-08 16:42:57
阅读次数:
214
题意:根目录能一次到达其任意子目录,子目录返回上一层目录需要一次,给出目录关系,问从某个目录到某个目录最少要多少步。操作数 ,就是起点到最近公共祖先的距离。然后讨论下,如果最近公共祖先等于终点,那么答案就是起点到祖先的高度差 ,否则就是高度差加一 。#include#include#include#...
分类:
其他好文 时间:
2014-11-08 16:42:03
阅读次数:
239
求LCA(最近公共祖先)的算法有好多,按在线和离线...
分类:
编程语言 时间:
2014-11-07 09:57:24
阅读次数:
198
题目:ZOJ Problem Set - 3195 Design the city
题意:给出一个图,求三点的连起来的距离。
分析:分别求出三点中任意两点的距离 / 2 = ans
AC代码:
#include
#include
#include
#include
using namespace std;
#define N 50010
#define M...
分类:
其他好文 时间:
2014-11-06 20:09:26
阅读次数:
129
题目:poj 1470 Closest Common Ancestors
题意:给出一个树,一些询问。求LCA的个数、
分析:很简单的模板题目,但是模板不够优秀,一直wa...RE,各种错误一下午,终于发现自己模板的漏洞了。
AC代码:
#include
#include
#include
#include
using namespace std;
#def...
分类:
其他好文 时间:
2014-11-06 20:05:07
阅读次数:
210