DFS序
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2819 Nim 树链剖分/DFS序+LCA+树状数组
题意:给定一棵树,每个节点是一堆石子,给定两种操作:1.改变x号节点的石子数量2.用从x到y的路径上的所有堆石子玩一次Nim游戏,询问是否有必胜策略Nim游戏有必胜策略的充要条件是所有堆的石子数异或起来不为零这题首先一看就是树链剖分 然后题目很善良地告诉我们深搜会爆栈 于是我们可以选择广搜版的树链剖分BFS序从左到右是深搜,从右到左是回溯,一遍BFS就够单点修改区间查询还可原创 2014-09-02 09:30:06 · 2739 阅读 · 0 评论 -
BZOJ 3786 星系探索 DFS序+Splay
题目大意:给定一棵有根树,提供下列操作:1.询问某个点到根路径上的点权和2.修改某个点的父亲,保证修改之后仍然是一棵树3.将某个点所在子树的所有点权加上一个值子树修改,LCT明显是搞不了了,在想究竟会不会有人去写自适应Top-Tree……首先我们DFS搞出这棵树的入栈出栈序 然后入栈为正出栈为负那么一个点到根的路径上的点权和就是从根节点的入栈位置到这个点的入栈位置的和子原创 2014-12-01 16:37:03 · 3933 阅读 · 0 评论 -
BZOJ 3881 Coci2015 Divljak fail树+树链的并
题目大意:给定两个字符串集合S和T,初始给定S集合中的所有字符串,不断向T集合中添加字符串,以及询问S集合中的某个字符串在T集合中的多少个字符串中出现过神题- -首先对S集合的所有字符串构建fail树T集合中每加入一个字符串,我们就将这个字符串在AC自动机上跑一遍,并记录经过的所有节点根据fail树的性质,这些节点到根路径上的所有节点的并集的出现次数都加了1因此我们要求的就是树原创 2015-01-22 15:41:34 · 3160 阅读 · 1 评论 -
BZOJ 3991 Sdoi2015 寻宝游戏 树链的并
题目大意:给定一棵树,多次将某个点设为关键点或取消关键点,求虚树中边长总和的二倍Orz wyfcyx首先我们考虑树链的并(每个点到根节点的链的并集)怎么求将虚树中的所有点按照DFS序排序,将每个点的深度统计入答案,将相邻两个点之间的LCA的深度从答案中扣除,就是所有点到根的链的并集的长度但是我们要求的是虚树中的边长总和,因此我们还要减掉所有点LCA的深度现在要求动态维护,因此我原创 2015-04-16 10:15:21 · 2312 阅读 · 0 评论 -
BZOJ 4034 HAOI2015 T2 DFS序+线段树
题目大意:给定一棵树,每个点有点权,支持下列操作: 1.某个点的点权+a 2.某棵子树所有点权+a 3.查询某个点到根路径上的点权和 这个用入栈出栈序就可以了 入栈为正,出栈为负,那么一个点到根路径上的权值和就是入栈出栈序中[1,入栈位置]的和 而子树在入栈出栈序中是连续的,因此用线段树维护一下就可以了 (似乎只要无脑链剖就可以了?#include <cstdio>#include原创 2015-05-03 20:01:41 · 2462 阅读 · 0 评论 -
BZOJ 3779 重组病毒 LCT+线段树维护DFS序
题目大意:给定一棵树,初始每个点都有一个颜色,支持三种操作: 1.将某个点到根的路径上所有点染上一种新的颜色 2.将某个点到根的路径上所有点染上一种新的颜色,然后把根设为这个点 3.定义一个点的代价为这个点到根路径上颜色的种类数,求某个点子树中所有点代价的平均值我真是炖了狗了…… 容易发现这玩应就是个LCT,操作1就是Access,操作2就是Move_To_Root,代价就是一个点到根路径上原创 2015-05-22 17:18:47 · 2492 阅读 · 0 评论