博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu----(2586)How far away ?(DFS/LCA/RMQ)
阅读量:6261 次
发布时间:2019-06-22

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

How far away ?

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 5492    Accepted Submission(s): 2090

Problem Description
There are n houses in the village and some bidirectional roads connecting them. Every day peole always like to ask like this "How far is it if I want to go from house A to house B"? Usually it hard to answer. But luckily int this village the answer is always unique, since the roads are built in the way that there is a unique simple path("simple" means you can't visit a place twice) between every two houses. Yout task is to answer all these curious people.
 

 

Input
First line is a single integer T(T<=10), indicating the number of test cases.
  For each test case,in the first line there are two numbers n(2<=n<=40000) and m (1<=m<=200),the number of houses and the number of queries. The following n-1 lines each consisting three numbers i,j,k, separated bu a single space, meaning that there is a road connecting house i and house j,with length k(0<k<=40000).The houses are labeled from 1 to n.
  Next m lines each has distinct integers i and j, you areato answer the distance between house i and house j.
 

 

Output
For each test case,output m lines. Each line represents the answer of the query. Output a bland line after each test case.
 

 

Sample Input
2 3 2 1 2 10 3 1 15 1 2 2 3 2 2 1 2 100 1 2 2 1
 

 

Sample Output
10 25 100 100
 

 

Source
 

 

Recommend
 
用邻接表+dfs比较容易过...
代码:
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int maxn=40100; 9 struct node10 {11 int id,val;12 };13 bool vis[maxn];14 vector< node >map[maxn];15 node tem;16 int n,m,ans,cnt;17 void dfs(int a,int b)18 {19 20 if(a==b){21 if(ans>cnt)ans=cnt;22 return ;23 }24 int Size=map[a].size();25 vis[a]=1;26 for(int i=0;i
>cas;39 while(cas--){40 cin>>n>>m;41 cnt=0;42 for(int i=1;i<=n;i++)43 map[i].clear();44 for(int i=1;i
View Code

 

转载地址:http://sjqsa.baihongyu.com/

你可能感兴趣的文章
Android对话框-中篇-之建立自己的对话框
查看>>
华为交换机VRP用户界面配置及Telnet登录实验
查看>>
作为一个程序员我最大的遗憾
查看>>
《SolidWorks 2012中文版从入门到精通》一6.5 综合实例——斜齿圆柱齿轮
查看>>
storm集群的监控
查看>>
RHCE 6.0学习笔记-2 RHEL 6 使用光盘配置本地YUM源
查看>>
Mongodb定期备份
查看>>
Confluence 6 数据库设置
查看>>
刨根问底-struts-怎么加载配置的相应的信息
查看>>
解决mysql数据库大小写敏感问题
查看>>
《.NET最佳实践》与Ext JS/Touch的团队开发
查看>>
jsp页面组成
查看>>
LCS记录
查看>>
C++开源跨平台类库集
查看>>
everything搜索工具小技巧
查看>>
一个 Sql语句优化的问题- STATISTICS 统计信息
查看>>
你不知道的KVO的内部实现
查看>>
转】MyEclipse10安装Log4E插件
查看>>
windows server2012r2 安装NET Framework 3.5
查看>>
vss整合配置连接到Myeclipse中以及中文配置
查看>>