本题也是找LCA的题目,不过要求多次查询,一般的暴力查询就必然超时了,故此必须使用更高级的方法,这里使用Tarjan算法。
本题处理Tarjan算法,似乎输入处理也挺麻烦的。
注意: 因为查询的数据会极大,故此使用一个数组记录所有查询数据就会超时的。我就载在这里了。查了好久才想到这点。因为我使用了一个vector容器记录了查询数据,故此每次都循环这组这么大的数据,就超时了。----解决办法:使...
分类:
其他好文 时间:
2014-07-09 11:08:22
阅读次数:
224
本题是一个多叉树,然后求两点的最近公共单亲节点。
就是典型的LCA问题。这是一个很多解法的,而且被研究的很透彻的问题。
原始的解法:从根节点往下搜索,若果搜索到两个节点分别在一个节点的两边,那么这个点就是最近公共单亲节点了。
Trajan离线算法:首次找到两个节点的时候,如果记录了他们的最低单亲节点,那么答案就是这个最低的单亲节点了。
问题是如何有效记录这个最低单亲节点,并有效根据遍历的情...
分类:
其他好文 时间:
2014-07-09 10:55:03
阅读次数:
233
LCA tarjan 的离线算法
#include
#include
#include
using namespace std;
const int maxn = 40010;
int first[maxn], head[maxn], cnt, sum;
struct edge
{
int u, v, w, next;
}e[maxn*2], qe[maxn], Q[maxn];
int...
分类:
其他好文 时间:
2014-07-09 10:23:35
阅读次数:
256
找书中权值和最大的路径,至少包含一个点。有点类似LCA(最近公共祖先),树的问题关键是如何划分子问题,然后递归求解。想到了可以返回两种结果,一个是单独路径的最大和,一种是子树的最大和,然后在求解的过程中不断的更新答案。 1 /** 2 * Definition for binary tree 3 ....
分类:
其他好文 时间:
2014-07-06 14:16:47
阅读次数:
187
题目链接:http://poj.org/problem?id=1470...
分类:
其他好文 时间:
2014-06-28 07:39:22
阅读次数:
208
1.DFS预处理出所有节点的深度和父节点inline void dfs(int u){ int i; for(i=head[u];i!=-1;i=next[i]) { if (!deep[to[i]]) { ...
分类:
其他好文 时间:
2014-06-24 20:23:57
阅读次数:
251
【原题】
星系调查
【问题描述】
银河历59451年,在银河系有许许多多已被人类殖民的星系。如果想要在行
星系间往来,大家一般使用连接两个行星系的跳跃星门。 一个跳跃星门可以把
物质在它所连接的两个行星系中互相传送。
露露、花花和萱萱被银河系星际联盟调查局任命调查商业巨擘ZeusLeague+
的不正当商业行为。
在银河系有N个已被ZeusLeague+成功打入市场的行星系,不妨...
分类:
其他好文 时间:
2014-06-24 17:50:57
阅读次数:
429
给出一颗二叉树,找到两个值的最小公共节点。
假设两个值都会在树中出现。如果可能不会出现的话,也很简单,就查找一遍看两个值是否在树中就可以了。如果不在就直接返回NULL。
基本思想:就是在二叉树中比较节点值和两个值的大小,如果都在一边(左边或者右边)那么就往下继续查找,否则就是都在同一边了,那么就可以返回这个节点了,这个节点就是最低公共单亲节点了。
参考:http://www.geeksfor...
分类:
其他好文 时间:
2014-06-16 21:06:22
阅读次数:
235
不是BST,那么搜索两节点的LCA就复杂点了,因为节点是无序的。
下面是两种方法,都写进一个类里面了。
当然需要重复搜索的时候,可以使用线段树及多种方法加速搜索。
#include
#include
using namespace std;
class LCANormalTree
{
struct Node
{
int key;
Node *left, *right;...
分类:
其他好文 时间:
2014-06-16 20:20:04
阅读次数:
234
1.易知,树上两点的距离dis[u][v] = D[u]+D[v]-2*D[lca(u,v)] (D为节点到根节点的距离)2.某条边权值一旦改变,将会影响所有以v为根的子树上的节点到根节点的距离,很明显,DFS一遍后以v为根的子树在DFS序列中是连续的一段,及转化为区间更新问题,可以用树状数组。做法...
分类:
其他好文 时间:
2014-06-15 11:42:02
阅读次数:
213