hdu2586
来源:互联网 发布:php教务管理系统源码 编辑:程序博客网 时间:2024/06/06 00:48
# include <iostream># include <cstdio># include <cstring># include <string># include <cmath># include <vector># include <map># include <queue># include <cstdlib># define MAXN 40001using namespace std;int n, mm, s;int fa[MAXN], qx[MAXN], qy[MAXN], ans[MAXN], f[MAXN];vector <int> vec[MAXN], q[MAXN];struct node{ int x,y; node(int a,int b) { x=a,y=b; } bool operator <(const node &no)const { if(y!=no.y) return y<no.y; if(y==no.y) return (x<no.x ); }};map<node,int> m;inline int find(int x){ return x == fa[x] ? x : find(fa[x]);}inline void dfs(int u){ int i, v; fa[u] = u; for(i = 0; i < vec[u].size(); i++) { v = vec[u][i]; if(f[u] != v) f[v] = u, dfs(v); } for(i = 0; i < q[u].size(); i++) if(f[v = u ^ qx[q[u][i]] ^ qy[q[u][i]]])//^运算获得与u相连的点(qx,qy中必有一个是u) { ans[q[u][i]] = find(v); } fa[u] = f[u];//这里f相当于vis数组}void solve(){ for(int i=1;i<=mm;i++) { int u=qx[i]; int v=qy[i]; int tmp=ans[i]; int sum=0; while(v!=tmp) { sum+=m[node(v,fa[v])]; v=fa[v]; } while(u!=tmp) { sum+=m[node(u,fa[u])]; u=fa[u]; } ans[i]=sum; }}int main(){ int i, x, y,z; int t; cin>>t; while(t--) { cin>>n>>mm; for(i = 1; i < n; i++) { cin>>x>>y>>z; m[node(x,y)]=z; m[node(y,x)]=z; vec[x].push_back(y); vec[y].push_back(x); } for(i = 1; i <= mm; i++) { cin>>qx[i]>>qy[i]; q[qx[i]].push_back(i); q[qy[i]].push_back(i); } dfs(1); solve(); for(i = 1; i <= mm; i++) printf("%d\n", ans[i]); } return 0;}/*23 21 2 103 1 152 31 2*/
阅读全文
0 0
- hdu2586
- HDU2586
- hdu2586
- HDU2586
- hdu2586
- hdu2586 LCA
- hdu2586(LCA)
- hdu2586 lca
- hdu2586 LCA模板
- hdu2586 lca_tarjan的应用
- HDU2586 离线tarjan LCA
- HDU2586 How far away ?
- HDU2586 How far away ?
- hdu2586【How far away ?】
- hdu2586 LCA 离线算法
- HDU2586【LCA在线算法】
- LCA Tarjan模板 HDU2586
- hdu2586 lca+rmq
- 深度学习相关论文
- list set map
- 详细的Log4j使用教程
- LeetCode--Missing Number(查找丢失的整数)Python
- 李彦宏雷军演讲视频“撞衫” 巨头PK成绩单【乌镇AI论坛干货】
- hdu2586
- python 使用免费爬取百度首页 网页 简单案例
- 第四届互联网大会开幕 何小鹏开小鹏汽车上路
- linux0.11内核完全剖析- exit.c
- 计步器优化
- Java之Scanner类中next()和nextLine()的区别
- pandas入门练习-数据结构
- 【java】安装Eclipse报错“ Failed to load the JNI shared library”
- 悟空问答拿10亿元贴补答主,内容创作者如何分到一杯羹?