树上带修改K大,太可怕。。写了树链剖分+线段树套平衡树+二分和dfs序+主席树两种,每种都是写+调试花了将近5个小时!!我实在是太弱了。。
1. 树链剖分+线段树套平衡树+二分
最显然的做法了,没啥好多说的,不过写起来真是麻烦(我太弱),
一不小心就会把线段树和平衡树的节点的域弄混,犯了超级多傻逼错误。。写这题的时候还把自己树链剖分的风格改了一下,以前的实在是太麻烦了。。查询的时候二分答...
分类:
其他好文 时间:
2015-05-04 22:10:16
阅读次数:
124
树上的操作3282 Tree删边, 连边, 单点修改, 询问路径异或和。1984: 月下“毛景树”路径覆盖, 路径增加, 询问路径 max简单树剖3306: 树要支持 换根, 修改点权, 查询子树最小值不换根就是简单的dfs序线段树, 换根的话只需要知道当前根与查询的点的关系:如果查询点是根的儿子,...
分类:
其他好文 时间:
2015-04-22 21:57:05
阅读次数:
140
http://dzy493941464.sinaapp.com/archives/96那个SIZE貌似必须设成R*R/Q?不知为啥,自己算的不是这个的说。本机AC,线上TLE。#include#include#include#include#includeusing namespace std;in...
分类:
其他好文 时间:
2015-04-22 08:16:03
阅读次数:
459
dfs序 我哭啊……这题在考试的时候(我不是山东的,CH大法吼)没想出来……只写了50分的暴力QAQ 而且苦逼的写的比正解还长……我骗点分容易吗QAQ 骗分做法: 1.$n,m\leq 1000$: 直接找一个关键点做根进行深搜,算出其他关键点都与root连通的最小边权和,再×2 2.一条...
分类:
其他好文 时间:
2015-04-20 20:43:17
阅读次数:
442
dfs序+可持久化线段树 好吧……是我too naive 这题……$$ans=min(dep[x],k)×(size[x]-1)+\sum_{y在x的子树中,且dis(x,y)12 #include13 #include14 #include15 #include16 #include17 #d.....
分类:
其他好文 时间:
2015-04-19 01:10:32
阅读次数:
201
题目大意:给定一棵树,多次将某个点设为关键点或取消关键点,求虚树中边长总和的二倍
Orz wyfcyx
首先我们考虑树链的并(每个点到根节点的链的并集)怎么求
将虚树中的所有点按照DFS序排序,将每个点的深度统计入答案,将相邻两个点之间的LCA的深度从答案中扣除,就是所有点到根的链的并集的长度
但是我们要求的是虚树中的边长总和,因此我们还要减掉所有点LCA的深度
现在要求动态维护,因此我...
分类:
其他好文 时间:
2015-04-16 12:35:09
阅读次数:
131
在考试代码的基础上稍微改改就a了……当时为什么不稍微多想想……插入/删除一个新节点时就把其dfn插入set。当前的答案就是dfn上相邻的两两节点的距离和,再加上首尾节点的距离。比较显然?不会证明……貌似叫“虚树”?#include#includeusing namespace std;#define...
分类:
其他好文 时间:
2015-04-15 18:48:02
阅读次数:
106
设siz[i]表示i的子树大小-1。询问中b在a上方的便于统计。对于b在a下方的情况,贡献为距a距离在K以内的节点的siz之和。按dfs序建立可持久化线段树,线段树的下标是深度。相当于把每个点(带权)映射到了平面上,然后求一个矩形内的点权之和。#include#includeusing namesp...
分类:
其他好文 时间:
2015-04-14 16:07:17
阅读次数:
134
每个点维护一颗以深度为下标,size-1为值的线段树,保存整颗子树的信息,这样就可以查询了,但是如果为每个节点都建立这么一颗树,显然会MLE,所以考虑在DFS序上建立主席树,然后每个节点原来对应的线段树树就是现在的两个线段树相减所得到的树。 1 /*************************....
分类:
其他好文 时间:
2015-04-06 12:37:13
阅读次数:
133
以1号节点为根,弄出DFS序,我们发现,对于一个询问:(rt,u),以rt为根,u节点的子树中的最小点权,我们可以根据rt,u,1这三个节点在同一条路径上的相对关系来把它转化为以1为根的在DFS序上的区间询问(中间有一种情况要在树上倍增,理解了LCA的话应该很容易写出来)。收获:对于只有换根这种改变...
分类:
其他好文 时间:
2015-04-05 21:52:32
阅读次数:
136