![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
吴俊达9812
这个作者很懒,什么都没留下…
展开
-
spoj Qtree1
说几个需要注意的问题: 1.多组样例时初始化问题 首先 lca 的 f 数组和 根的 d 值需要初始化 其次,树剖的son值和num需要初始化 2.把边赋给点时需要注意的问题 首先,根节点对应的边应该注意赋初值 其次,线段树是对编号之后的树进行建树,应该注意。 最后,因为lca的边不应该被算上,所以处理方式和点的不太一样,注意一下。 #include<bits/stdc++...原创 2019-06-25 11:47:59 · 131 阅读 · 0 评论 -
焦作网络赛 E.Jiu Yuan Wants to Eat
更新了板子,原来的常数太大了 这里取反运算是对 64 位全部取反,相当于 *(-1) + 2e64-1 = *( 2e64-1 )+2e64-1 还有一个问题就是先乘后加可以拆分成 乘 和 加,这样可以降低代码长度 坑点: unsigned long long 读入和输出都是是%llu #include <bits/stdc++.h> #define lc l,mid,x...原创 2019-06-25 20:15:08 · 185 阅读 · 0 评论 -
2019中国大学生程序设计竞赛 Tree
树剖,维护区间最大值以及区间和,最大值为1的时候就不需要下传更改了。 #include<bits/stdc++.h> #define lc l,mid,x<<1 #define rc mid+1,r,x<<1|1 using namespace std; typedef long long LL; typedef int lint; const lint ...原创 2019-07-14 18:10:55 · 263 阅读 · 0 评论 -
hdu 6612 Sindar's Art Exhibition
思路:列出求和的表达式,然后用树状数组进行维护。这题使我明白了树链剖分的意义在于将节点重新标号,然后使得重链的节点标号连续,这样可以将树的查询问题转化为多个区间查询问题子问题,这样我们考虑问题的时候只需要考虑区间查询即可。 坑点:模数为1e9 + 7 输入的范围却为 2e9。输入之后一定要取模。 #include <bits/stdc++.h> using namespace ...原创 2019-08-08 22:50:16 · 235 阅读 · 0 评论