树链剖分
文章平均质量分 58
树剖
EschatonAyane
风会带走我曾经存在过的证明
展开
-
【洛谷P7735】[NOI2021] 轻重边【树链剖分】
link\textcolor{pink}{link}link分析:树剖暴力修改修改时统计链上下部分的轻重划分 查询时判链上下端的值可维护timtimtim时间戳优化 总时间O(Tq log2n)O(Tq~log^2n)O(Tq log2n)要大力卡常CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&..原创 2021-08-12 20:16:30 · 187 阅读 · 0 评论 -
【洛谷P3979】遥远的国度【树剖换根】
link\textcolor{gray}{link}link分析:树剖换根换根有333种情况:x=rootx=rootx=root 那么就是全局最小值xxx不在1−>root1->root1−>root路径上 就是普通的查询xxx在1−>root1->root1−>root路径上 找出xxx的儿子kkk 以rootrootroot为根时 xxx子树覆盖的其余位置 就是kkk及kkk的子树把这一部分单独计算 与xxx子树取minminmin即可COD..原创 2021-08-11 15:32:07 · 69 阅读 · 0 评论 -
【洛谷P2146】[NOI2015] 软件包管理器【树链剖分】
linklinklink分析:install xinstall~xinstall x 可理解成把xxx和xxx依赖的软件包赋为111 也就是把000到xxx的软件包赋为111uninstall xuninstall~xuninstall x 可理解成把xxx和依赖xxx的软件包赋为000 也就是把xxx的子树赋为000改变的数量 可以用操作前的数量 减去 操作后的数量然后就树剖了CODE:#include<iostream>#incl...原创 2021-08-10 21:42:50 · 113 阅读 · 0 评论 -
【洛谷P3833】魔法树【树链剖分】
linklinklink分析:树剖模板 注意不要scanf("%c")scanf("\%c")scanf("%c")CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int N=1e5+5;int n,T,head[N],tot,top[N],..原创 2021-08-10 20:30:43 · 67 阅读 · 0 评论 -
【洛谷P3178】树上操作【树链剖分】
linklinklink分析:树剖模板 比赛时太无聊了 写这个练手CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int N=1e5+5;int n,m,head[N],tot,dfn[N],size[N],son[N],dep[N],id,f.原创 2021-08-10 11:13:47 · 85 阅读 · 0 评论 -
【洛谷P2590】树的统计【树链剖分】
linklinklink分析:嗯树链剖分模板不过模板好像比这题更复杂?这题单点修改区间查询就行了CODE:#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int N=5e4+5,inf=0x7fffffff;struct node{ int..原创 2021-07-21 16:40:48 · 74 阅读 · 0 评论 -
树链剖分 模板小记
树链剖分 模板小记树链剖分~模板小记树链剖分 模板小记Q.Q.Q. 树链剖分的背景?A.A.A. 连通且无环的树Q.Q.Q. 树链剖分的作用?A.A.A. 大幅增加码量 (A.A.A. 将一棵树变成几条链 树形变成线形 减少处理难度Q.Q.Q. 树链剖分能处理哪些问题?A1.A_1.A1. 修改的有:将xxx节点+ or×val+~or\times val+ or×val将xxx到yyy这条路径上所有节点+ or×val+~or\t原创 2021-07-21 16:28:08 · 104 阅读 · 0 评论