
DFS序
YihAN_Z
ただのあほです
展开
-
洛谷U3981 语文 DFS序+线段树
题目大意:对于一个有根树有n个结点,每个结点上都有权值。一共有q次操作,分别为以下两种: 1.将以结点i为根的子树除i之外的点的重要度增加delta 2.询问当前点重要度。 数据范围:n<=5*10^5,q<=10^6,delta<=10^3 对于30%的数据n<=500,q<=1000.对于30%的数据,直接模拟在树上的修改即可,最坏情况单次修改达到O(n) 本题中,要修改一棵子树上的所原创 2016-08-09 09:26:02 · 519 阅读 · 0 评论 -
BZOJ 3786 星系探索 Splay维护DFS序
题目大意:给定一棵有根树,有三种操作:询问结点到根的权值和,修改结点的父亲,子树加值。 由于有子树修改,LCT用不了啦。还有什么解决树上问题的方法呢?看看能不能转化成序列问题吧。 记录一下入栈出栈序,结点权值入栈存正出栈存负,结点到根的权值和即DFS序中从1加到该点入栈的位置。由于是DFS序,所以子树在序列中一定是连在一起的,这样修改父亲和子树加值都不用愁啦,整体移动/打一个加标记就好。动态序列原创 2016-12-27 14:23:52 · 633 阅读 · 1 评论