
树链剖分
文章平均质量分 81
a1s4z5
这个作者很懒,什么都没留下…
展开
-
Hdu 5221 Occupation
算是一个简单的树剖+线段树(不过话说回来树剖也是经常和线段树一起(这个题应该叫做线段树在树上的简单应用(Orz感觉自己的线段树(特别是区间更新这个地方)还是很不熟练(观看下文需要一些简单的线段树知识,包括但不限于线段树的定义)如果不考虑树上的部分的话,这个题要求我们维护一个区间,其中区间中的每一个点都有一个标记和一个value,刚开始的时候,标记都是false1 将原创 2015-12-01 11:40:58 · 377 阅读 · 0 评论 -
HYSBZ 1036 树的统计Count
树链剖分看了半个星期,感觉自己可以上题了轻重链划分倒是一下就看懂了,会dfs的两边的剖分应该都卡不住(刚开始以为是子树中最深的那个为重链的我也是图样)(其实是子树结点更多的那个)但是卡在了树上的查询上,怎么也理解不了怎么做到不重不漏,感觉总是有一个迷の情况会多询问一个节点或少询问一个节点终于有一天感觉自己不能这样想下去了(然后拿出了草稿纸),在纸上自己推了一发,然后发现了树剖的循环不变原创 2015-11-19 15:07:14 · 537 阅读 · 0 评论 -
Poj 3694 Network
一句话题意:求一个无向联通图的桥的个数,动态加边原创 2016-02-24 10:10:27 · 340 阅读 · 0 评论 -
bzoj 3626 LCA
已经有写的很好的题解了在这里就放一个代码吧这样的题交上去1A的快感真是让人沉迷于此(逃(第一发的CE不算#includeusing namespace std;const int maxn = 52345;const int mod = 201314;const int ROOT = 0;int n;vector edge[maxn];void init原创 2016-04-27 14:51:50 · 331 阅读 · 0 评论 -
bzoj 2243 染色
一个比较裸的树剖题先考虑区间处理的情况,我们维护区间颜色段数,区间左右端点的颜色之后这就可以满足区间合并了然后用树剖的方法处理一下就好ps:用结构体保存区间值重载加号表示区间合并不能更方便#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;const int maxn原创 2016-05-15 11:44:04 · 282 阅读 · 0 评论 -
UVA 1728 Toll Management IV
一个n(n≤104)n(n \le 10^4)个点m(m≤105)m (m \le 10^5)条带权(0≤Ci≤1000)(0 \le C_i \le 1000)边的无向图,给出原图的一个最小生成树(输入的前n−1n-1条边)对于第ii条边,定义AiA_i和BiB_i为在不改变最小生成树形态下增加和减少的最大的值求 ∑i=1mAi×i+Bi×i×i\sum\limits_{i=1}^m A_i \t原创 2016-09-23 15:08:04 · 488 阅读 · 0 评论 -
hihocoder 1387 A Research on The Hundred Family Surnames
题解网址以下为搬运 题意: 给一棵树,每个节点上有个颜色,很多询问,询问两种颜色,问从这两种颜色中各取一个节点,距离最大是多少。 题解:处理出每种颜色的节点们的直径(也就是距离最大的点对)。然后对于两种询问颜色(a,b)(a,b)的直径(au,av)(au,av)和(bu,bv)(bu,bv),答案就是max{dis(au,bu),dis(au,bv),dis(av,bu),dis(a原创 2016-09-30 17:26:50 · 531 阅读 · 0 评论