
树
一所悬线
这个作者很懒,什么都没留下…
展开
-
Roads in the North POJ - 2631
树上最大距离的裸题,就是在树上找两点这两点的距离比其他任意的都大。题意:给出一棵树的两边结点以及权重,就这条路上的最长路。 思路:求树的直径。 这里给出树的直径的证明: 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路,现有结论,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后再从这个最远点开始搜,就可以搜到另一个最长路的端点,即用两遍广搜就可以找出树...原创 2018-12-19 21:55:59 · 150 阅读 · 0 评论 -
A - Aragorn's Story 树剖
树上区间更新和查询,原理就是把树拆成几条链,dfs序是连续的,所以就把他们强加到线段树上,进行更新和查询。进行两遍dfs,第一遍把深度,重儿子,父节点等一些信息找出,然后第二遍dfs时记录每个节点的链头,遍历时先走重儿子,把树上的每个节点按dfs序应到数组上,建树就行了。具体过程找个视频看看就懂了。写的不太规范,自己能看懂就好了。#include<bits/stdc++.h>...原创 2019-01-17 19:37:28 · 209 阅读 · 0 评论 -
distance on the tree 树上主席树
题意:求树上两点之间边权不超过k的边的个数。思路:树剖之后建主席树,或者直接利用父子关系直接建树。#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;#define ll long long#define maxx 1e9struct code{ int l,r,d;} tr...原创 2019-04-23 11:31:23 · 150 阅读 · 0 评论