
数据结构---树链剖分
forezxl
水君一枚
展开
-
洛谷P3384 【模板】树链剖分
树链剖分原创 2017-12-10 15:33:21 · 319 阅读 · 0 评论 -
BZOJ2819 Nim
树链剖分题目传送门Nim游戏中先手必胜的结论为每堆石子数的异或和不为0。 那么这道题就变成板子题了。代码:#include<cctype>#include<cstdio>#include<cstring>#include<algorithm>#define N 500005#define F inlineusing na...原创 2018-08-16 14:27:15 · 181 阅读 · 0 评论 -
BZOJ3531 [Sdoi2014]旅行(洛谷P3313)
树链剖分 (线段树动态开点)BZOJ题目传送门 洛谷题目传送门学了发线段树动态开点。其实动态开点就是先不建树,每次修改的时候再往下建。这时左右儿子是编号的而不是原来的∗2∗2*2和∗2+1∗2+1*2+1。可以发现每次新建的节点数为lognlogn\log n,那么总空间复杂度就是nlognnlognn\log n的。这道题的话对每种颜色都开一个线段树。然后树剖上去+动态开点...原创 2018-08-18 20:54:46 · 234 阅读 · 0 评论 -
BZOJ4196 [Noi2015]软件包管理器(洛谷P2146)
树链剖分BZOJ题目传送门 洛谷题目传送门看懂题目后就是比较裸的树剖了。安装就是把x到根节点都改为1,卸载就是把x的子树都改为0。注意询问的内容。论10s时限跑了9.9s的快感。代码:#include&lt;cctype&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&原创 2018-07-06 21:03:07 · 387 阅读 · 0 评论 -
洛谷P1505 [国家集训队]旅游(BZOJ2157)
树链剖分洛谷题目传送门 BZOJ题目传送门操作有点多的裸树剖。套路下放边权后就是打板子。注意操作的时候不要包括LCA。代码:#include<cctype>#include<cstdio>#include<cstring>#include<algorithm>#define N 20005#define F inline...原创 2018-06-06 15:47:56 · 380 阅读 · 3 评论 -
BZOJ3631 [JLOI2014]松鼠的新家(洛谷P3258)
树链剖分BZOJ题目传送门 洛谷题目传送门裸树剖不解释代码:#include<cctype>#include<cstdio>#include<cstring>#include<algorithm>#define N 300005#define F inlineusing namespace std;struct tre...原创 2018-05-26 16:24:02 · 341 阅读 · 0 评论 -
BZOJ1969 [Ahoi2005]LANE 航线规划(洛谷P2542)
BZOJ1969: [Ahoi2005]LANE 航线规划(洛谷P2542)树链剖分 (Tarjan)BZOJ题目传送门 洛谷题目传送门首先和水管局长(自己的链接)一样,先把边删完,建出最终的图。然后把操作倒过来,转删边为添边。然后有两种方法把这张图变成树: 1.建出这个图的一颗生成树,把其他多余的边当作添边处理。2.Tarjan缩点后处理。对这个树进行树链剖分维护...原创 2018-04-18 13:01:10 · 293 阅读 · 0 评论 -
BZOJ4811: [Ynoi2017]由乃的OJ(洛谷P3613)
树链剖分 位运算乱搞BZOJ题目传送门 洛谷题目传送门前言 建议先把睡觉困难综合征这道题给做了题解和睡觉困难综合征一样,考虑每一位放1和放0的情况。那么我们只需要弄清楚如何合并区间就行了。定义p0,p1表示全放0/1时经过这一个区间后会变成什么。那么在合并左右区间时就变成了这两个东西://y是左区间,z是右区间x.p0=(y.p0&z.p1)|((~y.p0)&z.原创 2017-12-16 10:24:29 · 825 阅读 · 0 评论 -
BZOJ4543/3522: [POI2014]Hotel加强版(洛谷P3565)
长链剖分 树形DP原创 2017-12-17 19:57:08 · 479 阅读 · 0 评论 -
BZOJ2243: [SDOI2011]染色(洛谷P2486)
树链剖分原创 2017-12-12 18:18:07 · 468 阅读 · 5 评论 -
BZOJ4034: [HAOI2015]树上操作(洛谷P3178)
树链剖分原创 2017-12-10 21:12:57 · 554 阅读 · 0 评论 -
树链剖分简介(BZOJ1036)(洛谷2590)
树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、SBT、SPLAY、线段树等)来维护每一条链。原创 2017-12-10 19:32:39 · 379 阅读 · 0 评论 -
BZOJ4448 [Scoi2015]情报传递(洛谷P4216)
树链剖分BZOJ题目传送门 洛谷题目传送门把操作离线按时间排序,询问的时间减掉ccc。修改的话就把节点打个1,第一个询问dep减一减,第二个询问树剖跳一跳就好了。当然主席树在线也是可以的。代码:#include<cctype>#include<cstdio>#include<cstring>#include<algorithm>...原创 2018-08-30 14:03:50 · 210 阅读 · 0 评论