#include <string.h> #include <stdio.h> #include <vector> using namespace std; const int N = 50005; vector<int> v[N],w[N],query[N],num[N]; int pre[N],dist[N],ans[N]; bool vis[N]; int n; void Init() { for(int i=1; i<=n; i++) { v[i].clear(); w[i].clear...
代码: View Code 解法2: lca转RMQ 关于该算法 ver[] 存储树的 dfs 路径 first[u] 为顶点 u 在 ver 数组中第一次出现时的下标 deep[indx] 为顶点 ver[indx] 的深度 对于求 x, y 的 lca, 先令 l = first[x], r = first[y], 即 l, r 分别为 x, y 第一次在 ver 数组中出现时对应的下...
【HDU2586】How far away?-LCA算法模板题 题目大意:给定一棵有N个节点的树,每条边都有边权。有M个询问,对于每个询问,求出它给出的两点之间路径上的边权之和。 做法:本题是一道LCA(最近公共祖先)算法的模板题,网上也比较容易查到资料。用dis[i]表示i号节点到树根的距离,那么对于询问(i,j),答案显然是dis[...
http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:n个点,编号1-n,接下来n-1行,每行三个数字表示两点之间的距离,题目是保证两点间不会出现两条可行的路,也就是不会有环;m条询问,每条询问两个数字a,b表示a,b的最短距离。 #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #inclu...
/* HDU 2586 LCA(最朴素的倍增,一步一步往上挑,数据太水) Author:xzc 2019-01-28 23:54:52 Accepted 2586 31MS 4396K 1282 B G++ apareHDU */ #include <bits/stdc++.h> using namespace std; const int maxn = 4e4+20; struct Graph{ int head[maxn],deep[maxn],fa[maxn],dis[maxn],...
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 34457 Accepted Submission(s): 13982 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 ...
2166、 1562、 2705、 3664、 1260、 2752、 3183、 2350、 1975、 1331、 1287、 3331、 1693、 1389、 1488、 2316、 1929、 2960、 1721、 1459、 2082、 1564、 2248、 3191、 2263、 2282、 1313、 1543、 2407、 1468、 2389、 3208、 1629、 2126、 1105、 3224、 1580、 3456、 2586、 1129...
原博文 HDU2586(tarjanLCA板子) 2019-03-31 20:45 −... AlphaWA 0 257 ArrayList实现原理(JDK1.8) 2019-11-30 19:14 −### ArrayList实现原理(JDK1.8) ![](https://img2018.cnblogs.com/blog/1669484/201911/1669484-20191130191338574-578470422.png) ``` java public class ArrayLis... ...
登录 ⋅ 注册 原博文 hdu3078 伪LCA……2015-09-22 21:58 − ... 奚政 0 225 相关推荐 2004 - 2024 博客园·园荐 意见反馈
代码: 代码语言:javascript 复制 1#include<stdio.h>2#include<stdlib.h>3#define maxn5000545int father[maxn];6int dist[maxn];7int n,m,re;89voidinit(){10re=0;11for(int i=0;i<=n;i++){12father[i]=i;13dist[i]=0;14}15}1617intfin(int x){18if(x==father[x])returnx;19int pr...