---------树上问题------------
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树网的核[有关树的直径]
输入样例#1: 5 21 2 52 3 22 4 42 5 3输出样例#1: 5输入样例#2: 8 61 3 22 3 2 3 4 64 5 34 6 44 7 27 8 3输出样例#2: 5n<=500000分析为了方便,st,ed表示直径两端的两个点首先来看树的核是一个点的情况证...原创 2018-10-16 22:55:56 · 287 阅读 · 0 评论 -
谈谈树的直径
问题1:求一个点到树上另一个点距离的最大值,另一个点是树的直径的端点证明:a,b为直径, 若x到树上的最大距离为x--y 因为y到x是最长 dis(u,y) > dis(a,u) 否则a到x是最长的因此 直径显然变为(a,y)或(b,y)问题2求树上一个点使得这个点到其它所有的最大距离最小,则这个点在直径上因为到x距离最大的点是A或B 所以x显然没有U...原创 2018-10-16 23:18:51 · 229 阅读 · 0 评论 -
noip提高组树上问题模板[lca,树剖]
/*树*///lcaint lca(int x,int y){//dep[root]=1** if(dep[x]<dep[y])swap(x,y); for(int i=18;i>=0;i--) if(dep[fa[x][i]]>=dep[y]) x=fa[x][i]; if(x==y) return x; for(int i=18;i>=0;i--) ...原创 2018-10-25 21:54:09 · 313 阅读 · 0 评论 -
P3128 [USACO15DEC]最大流 [树上差分]
传送门点权差分 , 点加 点加 , lca减 , fa[lca]减#include<bits/stdc++.h>#define N 50050using namespace std;int first[N],next[N*2],to[N*2],tot;int n,m,fa[N][20],dep[N],val[N],ans;void add(int x,int y){...原创 2018-12-17 22:08:20 · 189 阅读 · 0 评论
分享