(用树的遍历求解层次性问题8.1.1)POJ 1330 Nearest Common Ancestors(求解最近共同祖先)
来源:互联网 发布:淘宝店卖什么比较火 编辑:程序博客网 时间:2024/05/19 04:02
/* * POJ_1330.cpp * * Created on: 2013年11月4日 * Author: Administrator */#include <iostream>#include <cstdio>#include <vector>using namespace std;const int maxn = 10010;vector<int> a[maxn];//多重链表,其中节点i的儿子链表a[i]为一个vectorint f[maxn];//双亲关系int r[maxn];//层次关系void dfs(int u , int dep){//从dep层的u节点出发,先根遍历计算每个节点的层次r[u] = dep;for(vector<int>::iterator it = a[u].begin() ; it != a[u].end() ; ++it){dfs(*it,dep+1);}}int main(){int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);int i;for(i = 0 ; i < n ; ++i){a[i].clear();}memset(f,255,sizeof(f));int x,y;for(i = 0 ; i < n-1 ; ++i){//建立父子关系scanf("%d%d",&x,&y);a[x-1].push_back(y-1);f[y-1] = x-1;}i = 0;while(f[i] >= 0){//寻找根节点++i;}dfs(i,0);//建立层次关系scanf("%d%d",&x,&y);--x;--y;while(x!=y){//求解最近共同祖先if(r[x] > r[y]){x = f[x];}else{y = f[y];}}printf("%d\n",x+1);}return 0;}
- (用树的遍历求解层次性问题8.1.1)POJ 1330 Nearest Common Ancestors(求解最近共同祖先)
- [POJ 1330]Nearest Common Ancestors(LCA最近公共祖先)
- POJ 1330 Nearest Common Ancestors(最近公共祖先)
- POJ 1330 Nearest Common Ancestors 【最近公共祖先】
- Nearest Common Ancestors+POJ+一道最近公共祖先的模板题
- POJ 1330 Nearest Common Ancestors 最近公共祖先模板/在线/离线
- poj 1330 Nearest Common Ancestors(最近公共祖先(LCA))
- POJ 1330 Nearest Common Ancestors 最近公共祖先 欧拉序列RMQ
- Nearest Common Ancestors(最近公共祖先)
- poj1330 Nearest Common Ancestors (最近公共祖先)
- 用树的遍历求解层次问题
- HDU 1330 Nearest Common Ancestors(求两个点的最近公共祖先)
- POJ 1330 Nearest Common Ancestors(树)
- POJ 1330 Nearest Common Ancestors 树
- poj 1330 Nearest Common Ancestors(简单的树初探)
- POJ 1330 Nearest Common Ancestors
- poj 1330 Nearest Common Ancestors
- poj 1330 Nearest Common Ancestors
- 贪心算法,递归算法,动态规划算法比较与总结
- Sprite Kit -- Sprite (3)
- NineOldAndroidsDemos 学习(4) FlakeView
- linux IPI
- CSharp调用Matlab编译的dll
- (用树的遍历求解层次性问题8.1.1)POJ 1330 Nearest Common Ancestors(求解最近共同祖先)
- 【转】POJ 1009
- Qt控件中文乱码的解决办法
- linux FrameBuffer
- hadoop commands(hadoop-2.0.0-cdh4.4.0)
- 黄淮学院CSDN高校俱乐部第一次HTML网页设计培训
- JSP乱码问题
- 第十周-求1000以内所有偶数的和(for语句)。
- linux下Vim设置显示行数 tab空格数