HDU 6115 Factory LCA,暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6115
题意:中文题面
分析:直接维护LCA,然后暴力枚举集合维护答案即可。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 200010;
const int inf = 0x3f3f3f3f;
struct edge{
int to,len,next;
}E[maxn*2];
vector<int>G[maxn];
int head[maxn],edgecnt,fa[maxn][20],dis[maxn],dep[maxn];
void init(){
edgecnt=0;
memset(head,-1,sizeof(head));
}
void add(int u, int v, int w){
E[edgecnt].to=v,E[edgecnt].len=w,E[edgecnt].next=head[u],head[u]=edgecnt++;
}
void dfs(int x,int d,int Len, int pre){
dis[x]=Len;
dep[x] = d;
fa[x][0]=pre;
for(int i=1; i<20; i++){
fa[x][i]=fa[fa[x][i-1]][i-1];
}
for(int i=head[x];~i;i=E[i].next){
int v=E[i].to;
if(v == pre) continue;
int len=E[i].len;
if(v==pre) continue;
dfs(v, d+1, Len + len, x);
}
}
int LCA(int u, int v){
if(dep[u]<dep[v]) swap(u,v);
for(int i=19; i>=0; i--){
if(dep[fa[u][i]]>=dep[v]){
u=fa[u][i];
}
}
if(u==v) return u;
for(int i=19; i>=0; i--){
if(fa[u][i]!=fa[v][i]){
u=fa[u][i];
v=fa[v][i];
}
}
return fa[u][0];
}
int n, m;
int getLen(int u, int v){
int _lca = LCA(u,v);
return dis[u]+dis[v]-2*dis[_lca];
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
for(int i=0; i<maxn; i++) G[i].clear();
memset(dis, 0, sizeof(dis));
memset(fa, 0, sizeof(fa));
scanf("%d%d",&n,&m);
init();
for(int i=1; i<n; i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
}
dfs(1,0,0,-1);
for(int i=1; i<=m; i++){
int num,x;
scanf("%d", &num);
while(num--){
scanf("%d",&x);
G[i].push_back(x);
}
}
int q;
scanf("%d", &q);
while(q--)
{
int a,b;
scanf("%d%d",&a,&b);
int ans = 0x3f3f3f3f;
for(int i=0; i<G[a].size(); i++){
for(int j=0; j<G[b].size(); j++){
ans = min(ans, getLen(G[a][i], G[b][j]));
}
}
printf("%d\n", ans);
}
}
return 0;
}
HDU 6115 Factory LCA,暴力的更多相关文章
- hdu 6115(LCA 暴力)
		
Factory Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total ...
 - 【bzoj3251】树上三角形  朴素LCA+暴力
		
题目描述 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改. 输入 第一行两个整数n.q表示树的点数和操 ...
 - HDU 5536--Chip Factory(暴力)
		
Chip Factory Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
 - hdu 4547(LCA)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4547 思路:这题的本质还是LCA问题,但是需要注意的地方有: 1.如果Q中u,v的lca为u,那么只需 ...
 - hdu 5461 Largest Point 暴力
		
Largest Point Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
 - HDU 5044 离线LCA算法
		
昨天写了HDU 3966 ,本来这道题是很好解得,结果我想用离线LCA 耍一把,结果发现离线LCA 没理解透,错了好多遍,终得AC ,这题比起 HDU 3966要简单,因为他不用动态查询.但是我还是错 ...
 - How far away ? HDU - 2586 【LCA】【RMQ】【java】
		
题目大意:求树上任意两点距离. 思路: dis[i]表示i到根的距离(手动选根),则u.v的距离=dis[u]+dis[v]-2*dis[lca(u,v)]. lca:u~v的dfs序列区间里,深度最 ...
 - hdu 5762 Teacher Bo 暴力
		
Teacher Bo 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5762 Description Teacher BoBo is a geogra ...
 - Chip Factory(HDU5536 + 暴力 || 01字典树)
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5536 题目: 题意: 对于给定的n个数,求出三个下标不同的数使得(si+sj)^sk最大. 思路: ...
 
随机推荐
- BZOJ4873 Shoi2017寿司餐厅(最小割)
			
选择了某个区间就必须选择其所有子区间,容易想到这是一个最大权闭合子图的模型.考虑将区间按长度分层,相邻层按包含关系连边,区间[i,j]的权值即di,j,其中最后一层表示长度为1的区间的同时也表示寿司本 ...
 - Hadoop运行Jar文件时Output错误
			
当第二次运行Jar程序时,出现Output文件已存在的Exception: Exception in thread "main" org.apache.hadoop.mapred. ...
 - 【BZOJ4892】DNA(后缀数组)
			
[BZOJ4892]DNA(后缀数组) 题面 BZOJ 洛谷 题解 看到这道题目,我第一反应是\(FFT\)??? 然后大力码出了一个\(FFT\) 就像这样 #include<iostream ...
 - BZOJ2752:[HAOI2012]高速公路——题解
			
http://www.lydsy.com/JudgeOnline/problem.php?id=2752 https://www.luogu.org/problemnew/show/P2221#sub ...
 - BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
			
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
 - 洛谷 P2730 魔板 Magic Squares 解题报告
			
P2730 魔板 Magic Squares 题目背景 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 题目描述 ...
 - PHP 无限级分类树
			
1. function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($ ...
 - [rsync]rsync设定及错误处理
			
server端设置 修改/etc/default/rsync RSYNC_ENABLE=true RSYNC_OPTS='--address=10.192.0.5' RSYNC_NICE=' ...
 - [异常处理]class kafka.common.UnknownTopicOrPartitionException (kafka.server.ReplicaFetcherThread)
			
在kafka.out日志里出现大量 ERROR [ReplicaFetcherThread-0-1], Error for partition [FLAG_DATA_SYC,1] to broker ...
 - 使用 log4j 在控制台 打印 hibernate 语句参数
			
log4j.rootLogger=INFO, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.st ...