![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 -------- 树链剖分
SolarDomo
每天都被头像萌醒
展开
-
HYSBZ 2243 染色 树链剖分 点上剖分
题目链接:http://bak2.vjudge.net/problem/38096/origin 题意: 两种操作: 1.修改u到v路径上的点的颜色为c 2.询问u到v路径上有多少段颜色线段树上用区间合并来维护答案 主要是在询问时要考虑一下,维护上个段的最后节点颜色来维护颜色段数#include <bits/stdc++.h>#define sf scanf#define pf pri原创 2016-09-19 19:15:52 · 429 阅读 · 0 评论 -
HYSBZ 1036 树的统计Count 树链剖分 点权剖分
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=10361.更改点权值 2.求路径上权值和 3.求路径上最大权值 代码:#include <bits/stdc++.h>#define sf scanf#define pf printfusing namespace std;const int maxn = 30000 + 50原创 2016-09-19 14:18:19 · 233 阅读 · 0 评论 -
HDU 5893 List wants to travel 树链剖分 边权剖分
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5893题意:给出2种操作 1.修改u到v的路径上的边的颜色为c 2.查询u到v的路径上有多少段颜色将无根树边为有根树之后,对树进行树链剖分,得到每个点的编号 用边上深度大的节点表示边,这样就是一个树上点剖分 这样就和HYSBZ 2243一样了代码:#include <bits/stdc++.h>原创 2016-09-19 19:49:53 · 530 阅读 · 0 评论 -
SPOJ QTREE 树链剖分 边上剖分
题目链接:http://bak2.vjudge.net/problem/13013/origin#include <cstdio>#include <cstring>#include <algorithm>#define sf scanf#define pf printfusing namespace std;/** Edge */const int maxn = 10000 + 50;原创 2016-09-21 10:33:36 · 389 阅读 · 0 评论 -
树链剖分模板
const int maxn = 100000 + 5; //树中节点个数//边集struct Edge{ int v,pre,c;}Es[maxn * 2];int head[maxn],TOT_EDGE;void INIT_EDGE(){ //边集初始化 memset(head,-1,sizeof head);原创 2016-09-19 20:01:42 · 262 阅读 · 0 评论