其实敲树剖敲多了就会手敲,然后就发现其实树剖也是可以求LCA的,根据树剖的经验,我们两遍dfs后关于询问l,r的情况我们就开始跳链,当l,r处于同一个链的时候返回深度较小的那个点就好了,这里给个例题: 题目链接:http://poj.org/problem?id=1330 Description A ...
分类:
其他好文 时间:
2020-01-15 14:14:21
阅读次数:
95
前言 树链剖分,我觉得最精妙的地方就在于它是通过$dfs$序将树形结构转为线性结构便于处理,进而可以用数据结构(线段树、树状数组等)去进行修改和查询。 将复杂的结构转化为相对我们熟悉简单的结构,这个思想对很多问题是通吃的,不仅仅在树形问题,算法中,在其他领域中也常常会用到这种思想 我们先来回顾两个问 ...
分类:
其他好文 时间:
2020-01-15 13:30:34
阅读次数:
170
多叉树的先序遍历。题意很直观,就是给一个多叉树,请你输出先序遍历的结果。跟二叉树的先序遍历一样,还是两种做法,BFS和DFS。两种做法的时间复杂度是O(n),空间复杂度是O(h)。例子, Input: root = [1,null,3,2,4,null,5,6] Output: [1,3,5,6,2 ...
分类:
其他好文 时间:
2020-01-15 09:43:32
阅读次数:
74
D - DFS HDU - 2660 I have N precious stones, and plan to use K of them to make a necklace for my mother, but she won't accept a necklace which is too ...
分类:
其他好文 时间:
2020-01-14 10:10:03
阅读次数:
75
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果: [ [3], [9,20], [15,7]] 来源:力扣(LeetCode)链接:htt ...
分类:
其他好文 时间:
2020-01-14 09:16:13
阅读次数:
61
给你一棵树,每次修改一个子树的所有值,然后单点查询。 按照DFS序把节点排列(即在DFS中出现的先后次序),同一个子树在序列中连续。 1 #include <cstdio> 2 using namespace std; 3 typedef long long ll; 4 int n,q,T,Tc,c ...
分类:
其他好文 时间:
2020-01-14 00:11:04
阅读次数:
77
BFS可以求得最短路,DFS会找到从当前点到图中叶子结点的路径。 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int n,m,ans; 5 char s[25][25]; 6 bo ...
分类:
其他好文 时间:
2020-01-13 22:00:44
阅读次数:
109
题意:给你一个无向完全图,求指定大小s个点的完全图子图的个数。 解法:单向建边顺序遍历,避免重复。 #include<stdio.h> #include<string.h> #include<math.h> #include<queue> #include<algorithm> #include<i ...
分类:
其他好文 时间:
2020-01-13 17:47:10
阅读次数:
64
hadoop入门分析(一) 基本架构 ? 这里呢我们将简单的对大数据进行一个初步的认识,毕竟大家都知道,无论是学习一项新技术还是一项新的什么其他的技能,光靠死记硬背是很难背下来的。重要的是对于你要掌握的东西的一个理解,有了理解,那就容易多了不是。所以人狠话不多,废话不多说,接下来就和大家一起探讨下大 ...
分类:
其他好文 时间:
2020-01-13 16:10:29
阅读次数:
65
先找到一条多边形的边,然后循环一圈输出多边形上的点。把每个三角形看作一个结点,以两个三角形之间公用边为边建立一张图,DFS输出叶子结点,则得到先切后切的顺序。 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using names ...
分类:
其他好文 时间:
2020-01-12 15:25:35
阅读次数:
82