如何遍历一棵树 有两种通用的遍历树的策略: 深度优先搜索(DFS) 在这个策略中,我们采用深度作为优先级,以便从跟开始一直到达某个确定的叶子,然后再返回根到达另一个分支。 深度优先搜索策略又可以根据根节点、左孩子和右孩子的相对顺序被细分为先序遍历,中序遍历和后序遍历。 宽度优先搜索(BFS) 我们按 ...
分类:
其他好文 时间:
2019-11-14 12:32:21
阅读次数:
71
" 题目传送门 " 简化题意 :一颗带有点权、以$1$为根的树,对于每个节点$x$,求出$x$的子树中有多少个点满足该点的点权大于$x$的点权 先将点权离散化 对这棵树进行DFS,在DFS到$x$时,加入该点点权,然后在DFS它的子树前记录一下当前有多少节点大于$x$,记为$last$。在回溯到该节 ...
分类:
其他好文 时间:
2019-11-14 11:26:31
阅读次数:
95
前置技能:线段树、DFS 当我第一次听到 “树链剖分” 这个算法的时候,感觉它一定很高大上。现在看来,它确实很高大上,不过也十分的 暴力 (个人认为,不喜勿喷) 基本概念 树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结 ...
分类:
其他好文 时间:
2019-11-14 10:00:55
阅读次数:
80
Hive看上去很像关系型数据库。不过,Hive实现和使用的方式和传统的关系型数据库非常不同。Hive是反模式的。 本文将重点介绍Hive中哪些模式是用户应该使用的,儿哪些是应该避免的 一、按天划分的表 这种每天一张表的方式在数据库领域是反模式的一种方式,但因为实际情况下,数据集增长的很快,这种方式应 ...
分类:
其他好文 时间:
2019-11-13 13:06:07
阅读次数:
64
"题目链接" Solution [CTSC2008]祭祀 题目大意:求有向图最长反链,输出一种合法方案,以及一个点是否出现在至少一种合法方案里面 二分图 分析: 最长反链不好求,做个$Floyd$传递闭包,然后就是求最大点独立集了 然后$3min$淦了$CTSC$题?~~naive~~,毒瘤SPJ让 ...
分类:
其他好文 时间:
2019-11-13 12:42:10
阅读次数:
88
恢复内容开始 1.先上个基础的全排列 #include<iostream> #include<cstring> using namespace std; const int maxn=1e3; int vis[maxn]; int p[maxn]; int n; int t=0; void dfs( ...
分类:
其他好文 时间:
2019-11-13 00:45:31
阅读次数:
62
用dfs序+子树大小 >>>线性dp #include<iostream> #include<cstdio> #define ri register int #define u int namespace opt { inline u in() { u x(0),f(1); char s(getch ...
分类:
其他好文 时间:
2019-11-12 16:12:11
阅读次数:
83
关于爆搜 ? ~~(这还用说,讲者太菜了)~~ ? 爆搜通常是没有思路时一个 ~~优秀~~ 玄学的解题方法,但同样是搜索,我们所的分数却相差甚远,即搜索的优化问题; 前言 ? 这是很基础的东西,这里只作为回顾. ? 讲着实力不足,请不要D讲者; BFS ? BFS,广度优先搜索,用于逐层拓展的工具, ...
分类:
其他好文 时间:
2019-11-12 16:08:31
阅读次数:
141
折半搜索(meet in the middle) ? 我们经常会遇见一些暴力枚举的题目,但是由于时间复杂度太过庞大不得不放弃. ? 由于子树分支是指数性增长,所以我们考虑将其折半优化; 前言 ? 这个知识点曾经在模拟赛中出现过,所以这里稍微提一下; ? 讲的很浅显,但是不要D讲者; 入门 ? dfs ...
分类:
其他好文 时间:
2019-11-12 16:06:42
阅读次数:
106
记忆化搜索 ? 记忆化搜索,属于DP的分支,但是其实现更加简单,依靠于DFS,所以在一些方面更具优越性; 前言 ? 记忆化可以作为DP难以实现时一个简易的方法~~(我知道你们都秒切DP,就我一个蒟蒻不会QWQ)~~. ? 讲的很浅显,但是不要D讲者; 浅谈 ? 记忆化搜素,顾名思义,是通过储存一个状 ...
分类:
其他好文 时间:
2019-11-12 16:06:23
阅读次数:
64