传送门 看到删边不用想就是反着加边 先把删完边之后的图拆一个生成树出来,然后考虑非树边的影响。实际上非树边就是让树上的一条路径的权值从$1$变为了$0$,而每一个询问就是一条路径上的权值之和。使用树链剖分+线段树维护权值即可。 ...
分类:
其他好文 时间:
2018-12-06 14:33:15
阅读次数:
146
动态点分治 先看一道题目 [ZJOI2007]捉迷藏 显然如果不带修改O(N)的树形动规和O(NlogN)的静态点分治都可以切掉这道题 一、点分树 考虑点分治,对于每一个分治区域树的重心的答案只会与其所有子区域树有关,所以我们可以再构建一颗点分树: 在点分治的过程中,我们把每个区域树的重心和其子区域 ...
分类:
其他好文 时间:
2018-12-03 13:53:37
阅读次数:
204
树链剖分 write by:BigYellowDog、lsy263 预备知识 预备知识:DFS序、LCA原理、线段树 线段树的作用是为了维护区间,所以这里不一定是线段树,还可以是其它维护区间的数据结构 PS:如果你大致掌握了上述知识,树剖10分钟就可以理解。当然,如果没掌握,树剖还是有点难理解的。所 ...
分类:
其他好文 时间:
2018-12-01 15:25:36
阅读次数:
140
A:留坑 B:二维sg函数,特判边界情况 E:签到 L:树链剖分裸题 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optimize(4) // pragma GCC optimize("unroll loops" ...
分类:
其他好文 时间:
2018-11-30 21:46:25
阅读次数:
186
树链上区间合并的问题比区间修改要复杂,因为每一条重链在线段树上分布一般都是不连续的,所以在进行链上操作时要手动将其合并起来,维护两个端点值 处理时的方向问题:lca->u是一个方向,lca->v是另一个方向,到最后合并这两个放向时都看左端点即可 ...
分类:
其他好文 时间:
2018-11-30 20:11:30
阅读次数:
246
两天复习了下树链剖分 用线段树可以很方便的维护树链剖分后的每一条重链 学习的博客链接 https://blog.csdn.net/cdy1206473601/article/details/79189553 kuangbin推荐的 http://blog.sina.com.cn/s/blog_7a1 ...
分类:
其他好文 时间:
2018-11-30 20:06:53
阅读次数:
239
链接 感觉这个题思维难度并不高,问题给的很明确: 1.换根 2.路径修改 3.子树最小值 2和3都可以用树链剖分解决,所以只用思考问题1. 如果老老实实换根,肯定 TLE 了。 我们发现,不论怎么换根,树的整体形态不变,所以对问题2不会产生影响。 而对问题3,思考可能有几种情况: //记 pek 为 ...
分类:
其他好文 时间:
2018-11-25 22:28:39
阅读次数:
212
题目大意: 给定n个点 每个点都有权值 接下来给定树的n条边 第 i 个数 a[i] 表示 i+1到a[i]之间 有一条边 给定q q个询问 每次询问给出 x y 求x到y的最长上升子序列的长度 题解 https://blog.csdn.net/forever_wjs/article/details ...
分类:
其他好文 时间:
2018-11-23 14:15:03
阅读次数:
191
noip怎么考这种东西啊。。。看错题场上爆零凉了 首先我们先进行树链剖分,那么问题可以转换成重链的答案+其他子节点的答案 而每次修改相当于改一段重链的答案,改一次其他子节点的答案交替进行 这样只有一个好处,就是把问题转换成序列问题,可以用线段树优化 fx,1表示不选当前点的最优解,fx,2表示选 方 ...
分类:
其他好文 时间:
2018-11-22 14:32:10
阅读次数:
180
题目大意: 给定树的N个结点 编号为1到N 给定N-1条边的边权。 三种操作: CHANGE k w:将第 k 条边的权值改成 w。 NEGATE x y:将x到y的路径上所有边的权值乘 -1。 QUERY x y:找出x到y的路径上所有边的最大权值。 单点更新 区间更新 区间查询 由于第二个操作是 ...
分类:
其他好文 时间:
2018-11-22 02:57:16
阅读次数:
191