https://codeforces.com/contest/1304/problem/E #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ; vector<int> G[maxn]; int depth[maxn]; int fa[maxn][maxbit]; int Log[maxn]; int N; void pre(){ Log[] = -; Log[] = ,Log[] = ; ;i…
http://acm.hdu.edu.cn/showproblem.php?pid=2586 课上给的ppt里的模板是错的,wa了一下午orz.最近总是被坑啊... 题解:树上两点距离转化为到根的距离之和减去重复部分,相当于前缀和 dis[x] + dis[y] - 2ll * dis[LCA(x, y)] #define _CRT_SECURE_NO_WARNINGS #include<cmath> #include<iostream> #include<stdio.h&g…
2450. 距离 ★★   输入文件:distance.in   输出文件:distance.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 在一个村子里有N个房子,一些双向的路连接着他们.人们总喜欢问这个“如果1想从房子A走到房子B有多远?”这个通常很难回答.但幸运的是在这个村里答案总是唯一的,自从道路修建以来这只有唯一的一条路(意思是你不能去一个地方两次)在每两座房子之间.你的工作是回答所有好奇的人. [输入格式] 输入文件第一行有两个数n(2≤n≤10000…
How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 22976    Accepted Submission(s): 9078 Problem Description There are n houses in the village and some bidirectional roads connecting…
题目链接 模板copy from http://codeforces.com/contest/832/submission/28835143 题意,给出一棵有n个结点的树,再给出其中的三个结点 s,t,f ,求路径 (s,t) (s,f) (t,f) 三者的最大公共结点数 对于(t,f) (s,f)的公共结点数,有 懒得细想了,暴力对s,t,f生成排列(反正一共仨数,最多也就3!=6个排列),求各种情况下的最大ans #include<bits/stdc++.h> using namespac…
倍增lca板子洛谷P3379 #include<cstdio> struct E { int to,next; }e[]; ],anc[][],log2n,deep[],n,m,s,ne; ]; void dfs(int x,int fa) { int i,k; vis[x]=; anc[x][]=fa; deep[x]=deep[fa]+; ;i<=log2n;i++) anc[x][i]=anc[anc[x][i-]][i-]; ;k=e[k].next) if(!vis[e[k].…
Home » Practice(Hard) » Dynamic Trees and Queries Problem Code: ANUDTQSubmit https://www.codechef.com/problems/ANUDTQ Tweet   All submissions for this problem are available. Read problems statements in Mandarin Chineseand Russian. Given a directed tr…
LCA求树上两点最短距离,如果a,b之间距离小于等于k并且奇偶性与k相同显然YES:或者可以从a先走到x再走到y再走到b,并且a,x之间距离加b,y之间距离+1小于等于k并且奇偶性与k相同也输出YES:或者从a走到y再走到x再走到b,并且总距离+1小于等于k并且奇偶性与k相同同样输出YES:否则输出NO. #define HAVE_STRUCT_TIMESPEC #include <bits/stdc++.h> using namespace std; ]; int cnt; struct e…
1.易知,树上两点的距离dis[u][v] = D[u]+D[v]-2*D[lca(u,v)] (D为节点到根节点的距离) 2.某条边<u,v>权值一旦改变,将会影响所有以v为根的子树上的节点到根节点的距离,很明显,DFS一遍后以v为根的子树在DFS序列中是连续的一段,及转化为区间更新问题,可以用树状数组. 做法:先把求LCA解决,LCA可以转化为RMQ问题,可参见:LCA转RMQ, 即转化为LCA(T,u,v) = RMQ(B,pos[u],pos[v]),其中B为深度序列.预先DFS可以处…
链接:https://ac.nowcoder.com/acm/contest/558/D来源:牛客网 寻找 小猫在研究树. 小猫在研究树上的距离. 给定一棵N个点的树,每条边边权为1. Q次询问,每次给定a,b,c,请你输出a到b的路径上离c最近的点的编号. 输入描述: 第一行一个正整数N,表示节点数量. 接下来N−1行,第i行两个正整数ui,vi,表示第i条边连接节点ui,vi. 接下来一行一个正整数Q,表示询问数量. 接下来Q行,每行三个正整数a,b,c,表示一组询问. 输出描述: Q行,每…