![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
文章平均质量分 80
TheWolfWhistlingSong
蜜の夜明け
展开
-
Bzoj4034:[HAOI2015]T2:树链剖分
题目链接:4034:[HAOI2015]T2水树链剖分,注意开long long……#include#include#include#include#define LL long longusing namespace std;const int maxn=300010;int n,m,tot=1,h[maxn],pos[maxn];struct edges{int to,原创 2016-04-01 18:40:35 · 368 阅读 · 0 评论 -
Bzoj3589:动态树:树链剖分+容斥原理+树链的并
题目链接:3589:动态树子树修改,树链查询,一看就知道是树链剖分的题关键在于容斥,对于一堆链,如果有偶数个就加上,奇数个就减去,所以枚举子集就可以了对于两条链,我们怎么求交?设两条链中最深的节点为a,b求出他们的LCA,如果LCA的深度小于其中一条链的最浅节点的深度,交集为空,否则交集为LCA到深度较大的链顶形成的一条链#include#include#include#原创 2016-03-25 15:14:10 · 1049 阅读 · 0 评论 -
Bzoj4196:[Noi2015]软件包管理器:树链剖分
题目链接:4196:[Noi2015]软件包管理器这是一道沙茶题昨天写一道树链剖分题调了3h最后莫名其妙地过了被人D了一顿今天我不服我要秒A一道树链剖分给你们看看然而……建立线段树的时候写成了这个"p->l;p->r=r;"然后调了1hQAQ交了一发E了又调了0.5h,发现dfs1(int x,int deep)中对儿子进行dfs时写成了dfs1(v,x)QAQ原创 2016-05-17 20:14:25 · 326 阅读 · 0 评论 -
Bzoj3531:[Sdoi2014]旅行:树链剖分+动态开点线段树
题目链接:[Sdoi2014]旅行对于每种颜色维护一颗线段树,为了节约空间这里我们动态开点然后就是弱鸡的线段树操作了指针的动态开点线段树现在才会写……#include#include#include#includeusing namespace std;const int maxn=100010;const int maxc=100001;int n,m,tot=0,原创 2016-07-18 08:05:31 · 477 阅读 · 0 评论 -
Bzoj2819:Nim:树链剖分
题目链接:Nim线段树维护异或值得沙茶题然而dfs会爆栈所以得开手工栈(见代码)#include#include#include#includeusing namespace std;const int maxn=500010;int tot=0,h[maxn],ind=0,s[maxn],fa[maxn];struct edge{int to,next;}G[maxn<原创 2016-07-17 19:27:42 · 380 阅读 · 0 评论