
树链剖分
文章平均质量分 86
Leo_Riddle
AFO
展开
-
bzoj P1036 [ZJOI2008]树的统计Count
传送门 嗯,一道裸裸的树剖。 代码: #include #include using namespace std; const int Maxn=30005; const int oo=2147483647; struct segment{int v,next;}e[Maxn*2]; struct Qtree{int l,r,mx,sum;}t[Maxn*4]; int size[Max原创 2017-07-31 00:13:49 · 471 阅读 · 0 评论 -
bzoj P4034 [HAOI2015]树上操作
传送门 这道题树剖也蛮裸的,观察一下下标数组我们发现每一棵子树在线段树的下标肯定是连续的,想想dfs的过程就知道了,然后我们就能用树剖维护子树了。通过这题我们也知道了树剖不仅能维护链,也能维护子树。 这题也有更高超的方法,用线段树维护dfs序,对于dfs序中出现的节点我们一个取正一个取负,就可以直接上线段树了。 树剖代码: #include #include #include usin原创 2017-07-31 01:07:01 · 489 阅读 · 0 评论 -
bzoj P3531 [Sdoi2014]旅行
传送门 这道题学到了动态开空间线段树的写法,感觉跟主席树有一定的类似。 说一下怎么动态开吧。 首先回忆一下线段树的过程,我们发现对于这题,每一颗线段树都有很多的子结点是0,也就是说这些节点都是没用的,所以我们考虑对于每一个非0叶子结点到根都是非0的,但是其他都是为0的,都是没有用的,那么为何要为它们开内存存储呢,所以我们换种方式存储对每一个节点都有一个编号,然后结构体内的l,r都是存的l原创 2017-07-31 00:56:50 · 422 阅读 · 0 评论