树链剖分
YuYaoHeKai
一个OIer!
展开
-
BZOJ4034: [HAOI2015]树上操作
题目链接 树链剖分,单点修改,查询最大值和总和。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define N 30500using namespace std;int n,tot,lable,Next[N*2],head[N*2],tree[N*2],a[N原创 2017-04-27 07:45:04 · 441 阅读 · 0 评论 -
SPOJ Query on a tree
此题需要把边权转换成点权,方法如下: 可以从根开始dfs,然后将每条边的值赋到向下的一个节点上,最后再把根的值赋为-∞即可。例如有一条1到2的边,权值为3,则从1开始dfs,就将2这个点的点权赋为3。 题目链接 Vjudge题目链接#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include原创 2017-06-13 18:25:51 · 360 阅读 · 0 评论 -
HDU3966 Aragorn’s Story
题目链接 这题查找为单点查找,故可以用树状数组来维护。 #include<iostream>#include<cstdio>using namespace std;int n,m,q,tot,label,a[50010],Next[100010],head[100010],tree[100010],dep[50010],son[50010],size[50010],fa[50010];in原创 2017-06-13 18:27:09 · 289 阅读 · 0 评论 -
POJ3237 Tree
这题同样需要将边权转换成点权。 题目链接 另一道需要将边权转换成点权的题#include<iostream>#include<cstdio>using namespace std;int n,tot,label,tree[80010],Next[20010],head[10010],tree1[20010],val[20010],num[20010],dep[10010];int top原创 2017-06-13 18:30:05 · 318 阅读 · 0 评论 -
BZOJ1036 [ZJOI2008]树的统计Count
树链剖分裸题。 题目链接#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define N 30500using namespace std;int n,tot,lable,Next[N*2],head[N*2],tree[N*2],a[N],m,fa[N],de原创 2017-06-13 18:31:08 · 346 阅读 · 0 评论 -
BZOJ1984 月下“毛景树”
这题在线段树中需要成段覆盖和成段加,在处理时需要当心。 同时需要将边权转换成点权。 题目链接#include<iostream>#include<cstdio>using namespace std;int n,tot,lable,root,f[100100],lazy1[800800],lazy2[800800],a[800800],Next[200010],head[200100]原创 2017-06-13 18:34:15 · 467 阅读 · 0 评论 -
详解树链剖分
树链剖分,顾名思义为将链剖开分成多条。当我们想要修改树上一条路的值或求值时,我们暴力只能用一个个修改,这是非常慢的。这时,我们就要想一个办法,数据结构?但是数据结构我们都需要连续修改,可是树上路径的编号是不连续的。于是我们想了一个办法。 我们先定义 fa[x]为x的父亲 dep[x]为x的深度 size[x]为以x为根的子树的节点个数 几个名词: 1.重边(一个节点的儿子中原创 2017-06-13 16:10:15 · 383 阅读 · 0 评论 -
BZOJ2243: [SDOI2011]染色
题目链接 树链剖分,这题两个区间合并时和Query求值时都需要注意!!!#include<iostream>#include<cstdio>using namespace std;int n,m,tot,lable,color[410000],Next[410000],head[410000],tree[410000],fa[410000],dep[410000],size[410000];原创 2017-04-26 18:37:35 · 421 阅读 · 0 评论