题目:
输入一个n个节点的无根树的各条边,并指定一个根节点,要求把该树转化为有根树,输出各个节点的父亲编号。
分析:分析在代码的注释中!
#include
#include
using namespace std;
const int MAXN = 1000;
int n, p[MAXN];
vector G[MAXN];
void dfs(int u, int fa...
分类:
其他好文 时间:
2014-06-28 06:56:57
阅读次数:
205
Description我们知道一棵有根树可以进行深度优先遍历(DFS)以及广度优先遍历(BFS)来生成这棵树的DFS序以及BFS序。两棵不同的树的DFS序有可能相同,并且它们的BFS序也有可能相同,例如下面两棵树的DFS序都是1 2 4 5 3,BFS序都是1 2 3 4 5现给定一个DFS序和BF...
分类:
其他好文 时间:
2014-06-18 09:41:13
阅读次数:
173
本文出自 http://blog.csdn.net/shuangde800
题目传送门
题意:
给出一棵树,求离每个节点最远的点的距离
思路:
把无根树转化成有根树分析,
对于上面那棵树,要求距结点2的最长距离,那么,就需要知道以2为顶点的子树(蓝色圈起的部分,我们叫它Tree(2)),距顶点2的最远距离L1...
分类:
其他好文 时间:
2014-06-05 06:56:39
阅读次数:
226
有根树同构。参考论文《hash在。。。。》 1 #include 2 #include 3
#include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 const
int leaf_hash=2099;...
分类:
其他好文 时间:
2014-05-31 18:21:24
阅读次数:
187
首先我们先将树提出一个根变成有根树,那么我们可以通过树链剖分来实现对于子树的最小值求解,那么按照当前的根和询问的点的相对位置关系我们可以将询问变成某个子树和或者除去某颗子树之后其余的和,前者直接询问区间,后者询问区间的补集。/***********************************.....
分类:
其他好文 时间:
2014-05-07 17:02:20
阅读次数:
427