
树链剖分
文章平均质量分 85
even_bao
这个作者很懒,什么都没留下…
展开
-
【NOI 2015】软件包管理器
【题目链接】 点击打开链接【算法】 树链剖分,子树的DFS序也是连续的一段 要注意细节!【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100000struct SegmentTree { int l,r,sum[2],opt; } tr...原创 2018-02-12 17:32:37 · 283 阅读 · 0 评论 -
【ZJOI 2008】树的统计
【题目链接】 点击打开链接【算法】 树链剖分模板题【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 30000struct SegmentTree { int l,r,maxn,sum; } tree[MAXN*3];int i,N,Q,u,v...原创 2018-02-12 17:37:22 · 235 阅读 · 0 评论 -
【SDOI 2011】染色
【题目链接】 点击打开链接【算法】 树链剖分【代码】 本题,笔者求最近公共祖先并没有用树链剖分“往上跳”的方式,而是用倍增法。笔者认为这样比较好写,代码可读性 比较高 此外,笔者的线段树并没有用懒惰标记,只要当前访问节点的线段总数为1,那么就下传 #include<bits/stdc++....原创 2018-05-03 22:03:19 · 193 阅读 · 0 评论 -
【SDOI 2014】 旅行
【题目链接】 点击打开链接【算法】 树链剖分 每个宗教建一棵线段树,注意数据量大,要动态开点【代码】 #include<bits/stdc++.h>using namespace std;#define MAXLOG 18const int MAXN = 1e5 + 10;const int MAXS ...原创 2018-05-12 11:03:54 · 153 阅读 · 0 评论 -
【HAOI 2015】 树上操作
【题目链接】 点击打开链接【算法】 树链剖分 子树的DFS序是连续的一段!【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100010struct Edge{ int to,nxt;} e[MAXN*2];int ...原创 2018-05-19 09:55:55 · 191 阅读 · 0 评论 -
【LNOI 2014】 LCA
【题目链接】 点击打开链接【算法】 考虑求lca(x,y)的深度 我们可以将从根到x路径上的点都打上标记,然后,询问y到根上路径的权值和 那么,求sigma(lca(i,z))(l <= i <= r ),我们可以将区间[l,r]中的点依次打上标记,然后,询问点z到根路径 上的权值和 ...原创 2018-05-31 19:29:35 · 525 阅读 · 0 评论 -
【BZOJ 4353】 Play with tree
【题目链接】 点击打开链接【算法】 树链剖分 对于线段树的每个节点,记录这段区间的最小值,最小值的个数,值为0的个数,此外,还要维护两个懒惰标记【代码】 本题细节很多,写程序时要认真严谨!#include<bits/stdc++.h>using namespace std;#define MAXN 10001...原创 2018-06-01 22:56:52 · 209 阅读 · 0 评论