博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LCA 最近公共祖先 (模板)
阅读量:4693 次
发布时间:2019-06-09

本文共 1612 字,大约阅读时间需要 5 分钟。

1 #include 
2 #include
3 #include
4 #include
5 #define N 100005 6 using namespace std; 7 vector
vec[N] ; 8 vector
> query[N]; 9 struct node{10 int first , second;11 }e;12 13 vector
query[N];14 15 int vis[N] , pre[N] , ans[N];16 int Find(int x){17 if(pre[x] == x){18 return x;19 }else{20 pre[x] = Find(pre[x]);21 return pre[x];22 }23 }24 void dfs(int u , int fa){25 26 pre[u] = u;27 vis[u] = 1;28 for(int i = 0 ; i < vec[u].size() ; i ++){29 int v = vec[u][i];30 if(v == fa) continue;31 dfs(v , u);32 }33 34 for(int i = 0 ; i < query[u].size() ; i++){35 int v = query[u][i].first;36 int id = query[u][i].second;37 if(vis[v] == 1){38 ans[id] = Find(v);39 }40 }41 42 pre[u] = fa;43 }44 45 int main(){46 int T;47 scanf("%d" ,&T);48 while(T --){49 int n , x, y;50 scanf("%d" , &n);51 for(int i = 0 ; i < n - 1 ; i ++){52 scanf("%d%d" , &x , &y);53 vec[x].push_back(y);54 vec[y].push_back(x);55 vis[y] = 1;56 }57 for(int i = 1 ; i <= n ; i ++ ){58 cout << i << "==========" << endl;59 for(int k = 0 ; k < vec[i].size() ; k ++){60 cout << vec[i][k] << " ";61 }62 cout << endl;63 }64 int q;65 scanf("%d",&q);66 for(int i = 0 ; i < q ; i ++){67 scanf("%d%d" , &x , &y);68 query[x].push_back({y , i});69 query[y].push_back({x , i});70 }71 for(int i = 1 ; i <= n ; i ++){72 if(vis[i] == 0){73 memset(vis , 0 ,sizeof(vis));74 dfs(i , -1);75 break;76 }77 }78 for(int i = 0 ; i < q ; i ++){79 printf("%d\n" ,ans[i]);80 }81 }82 }

 

转载于:https://www.cnblogs.com/shixinzei/p/7286573.html

你可能感兴趣的文章
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
21世纪经济网APP
查看>>
解决NetworkOnMainThreadException
查看>>
1039 到底买不买
查看>>
农银电商项目学习笔记(一)
查看>>
MockObject
查看>>
Chukwa
查看>>
(转)Maven仓库——私服介绍
查看>>
设计模式之工厂模式
查看>>
仿复制粘贴功能,长按弹出tips的实现
查看>>
Kubernetes-Host网络模式应用
查看>>
第三次作业
查看>>
使用HTML5构建iOS原生APP(2)
查看>>
sqlplus terminators - Semicolumn (;), slash (/) and a blank line
查看>>
省选知识清单/计划列表(咕?)
查看>>
远程桌面(3389)复制(拖动)文件
查看>>
转 lucene3搜索引擎,索引建立搜索排序分页高亮显示, IKAnalyzer分词
查看>>
bootstrap datetimepicker 位置错误
查看>>
9结构型模式之代理模式
查看>>