#include<stdio.h>

#include<string.h>//用c/c++会爆栈,用g++ac

#define inf 0x3fffffff

#define N 41000

struct node {

int u,v,w,next;

}bian[N*2];

int head[N],yong;

int pre[N],dis[N],deep[N];

void addedge(int u,int v,int w) {

bian[yong].u=u;

bian[yong].v=v;

bian[yong].w=w;

bian[yong].next=head[u];

head[u]=yong++;

}

void dfs(int s,int h,int pr){

 int i;

 deep[s]=h+1;

 for(i=head[s];i!=-1;i=bian[i].next) {

    if(bian[i].v!=pr) {

        pre[bian[i].v]=s;

        dis[bian[i].v]=dis[s]+bian[i].w;

        dfs(bian[i].v,h+1,s);

    }

 }

 return ;

}

int lca(int u,int v) {

if(u==v)

    return u;

if(deep[u]>deep[v])

    return lca(pre[u],v);

return lca(u,pre[v]);

}

int main() {

   int n,m,i,u,v,w,t;

   scanf("%d",&t);

   while(t--) {

   scanf("%d%d",&n,&m);

   memset(head,-1,sizeof(head));

   yong=0;

   for(i=1;i<n;i++) {

    scanf("%d%d%d",&u,&v,&w);

   addedge(u,v,w);

   addedge(v,u,w);

   }

   dis[1]=0;

   dfs(1,-1,1);

   while(m--) {

    scanf("%d%d",&u,&v);

    w=lca(u,v);

    printf("%d\n",dis[u]+dis[v]-2*dis[w]);

   }

   }

return 0;

}

最新文章

  1. 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
  2. 深入理解openstack网络架构(3)-----路由
  3. ActiveMQ(八)_多集群的负载均衡
  4. centos python2.6升级到2.7 还有单独的python3.5环境
  5. [zt]OpenCV2.1.0的安装
  6. mstsc命令详解
  7. Eclipse中安装使用SVN
  8. tungsten开机启动及进程开启停止
  9. 学生管理系统(list)
  10. 【★】EIGRP终极解析!
  11. 微信小程序点击返回顶层实现方法
  12. C++类与对象(05)
  13. awk删除重复文件
  14. nginx1.14.0版本负载均衡配置
  15. Java学习笔记一:数据类型I
  16. MyEclipse配置tomcat报错 - java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0
  17. Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念(转)
  18. [转] HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
  19. 10、jQuery初识
  20. Gym100340 线性dp

热门文章

  1. HDU5526/BestCoder Round #61 (div.1)1004 Lie 背包DP
  2. Codeforces Round #332 (Div. 2)C. Day at the Beach 树状数组
  3. SuperSocketClientEngine
  4. 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”
  5. Codeforces--630I--Parking Lot(规律)
  6. java 分布式锁
  7. Android单选中listview中的一项
  8. (Go)08.time示例
  9. go之变量、指针、引用地址
  10. flash 遮住 div 解决办法