讲得不错的 poj,1330 最近公共祖先的taijan离线算法,一次性批处理,然后再query 注意建边,注意访问,注意基于dfs,注意寻找根节点,并查集的运用; 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 ...
分类:
其他好文 时间:
2016-04-27 00:03:37
阅读次数:
210
本章讨论经典的IPC:管道、FIFO、消息队列、信号量以及共享存储器1 管道管道是Unix系统IPC最古老的方式。管道有下列两种局限性:
(1) 历史上,它们是半双工的(即数据只能在一个方向上流动)。
(2) 它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用fork,此后父子进程就可以应用该管道#include
int pipe(int f...
分类:
系统相关 时间:
2016-04-26 20:41:11
阅读次数:
260
235. Lowest Common Ancestor of a Binary Search Tree Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the ...
分类:
其他好文 时间:
2016-04-21 16:34:57
阅读次数:
197
这里先推荐两道练习的裸题 首先是求点 【codevs4605】 LCA 就是求两个点的公共祖先,每次询问xor上上一个询问的答案。 先是两遍DFS: dfs1:把dep、siz、son求出来 dfs2:求出top和w siz[v]表示以v为根的子树的节点数 dep[v]表示v的深度(根深度为1) t ...
分类:
其他好文 时间:
2016-04-18 22:30:29
阅读次数:
307
题目链接: http://poj.org/problem?id=1330 题意: 给你一颗有根树,最后输入一对数(a,b),叫你求a和b的公共祖先。 裸的lca,数据也很小,拿来练手不错。 题解: 1、tarjan_lca,离线,线性时间复杂度 代码: 1 #include<iostream> 2 ...
分类:
其他好文 时间:
2016-04-13 01:56:46
阅读次数:
148
POJ - 1330 Nearest Common Ancestors(dfs+ST在线算法|LCA倍增法) d.输入树中的节点数N,输入树中的N-1条边。最后输入2个点,输出它们的最近公共祖先。 s.裸的最近公共祖先。 c.dfs+ST在线算法: /* LCA(POJ 1330) 在线算法 DFS ...
分类:
其他好文 时间:
2016-04-08 11:49:46
阅读次数:
191
1. 离线算法 http://hihocoder.com/problemset/problem/1067 并查集 2. 在线算法 http://hihocoder.com/problemset/problem/1069 最近公共祖先无非就是两点连通路径上高度最小的点 求每个结点所在层数,先序遍历树记 ...
分类:
其他好文 时间:
2016-04-07 20:41:10
阅读次数:
231
题目链接:传送门 在线算法: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 40010; struct nod{ ...
分类:
其他好文 时间:
2016-04-04 10:24:11
阅读次数:
261
LCA问题的tarjan解法模板 LCA问题 详细 1、二叉搜索树上找两个节点LCA 1 public int query(Node t, Node u, Node v) { 2 int left = u.value; 3 int right = v.value; 4 5 //二叉查找树内,如果左结 ...
分类:
其他好文 时间:
2016-04-03 22:11:19
阅读次数:
198
来自:http://www.cnblogs.com/ylfdrib/archive/2010/11/03/1867901.html 对于一棵有根树,就会有父亲结点,祖先结点,当然最近公共祖先就是这两个点所有的祖先结点中深度最大的一个结点。 0 | 1 / \ 2 3 比如说在这里,如果0为根的话,那 ...
分类:
编程语言 时间:
2016-04-02 22:45:01
阅读次数:
282