【SDOI2014】旅行
摘要:题意 传送门 思路 树剖+动态开点线段树(每种宗教建一棵) 改宗教
x改为
y,把
rtx上对应的叶子节点删了(值清空),再insert一个新的。 code: 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=2e
阅读全文
[SDOI2016]游戏
摘要:description 一个长为
n的数列,每个初始为123456789123456789。 操作: 0 s t a b:s到t的链上每个点x跟dist(s,x)*a+b取min。 1 s t:求s到t的链上的min。 solution 李超+树链剖分 关键是想好树链剖分的李超线段树下标维护的是什
阅读全文
【LNOI2014】LCA
摘要:题意 有一个很巧妙的转化:求x,y的dep[lca(x,y)]可以先x到根的路径上加1,然后查询y到根路径上的和。 所以x->[l,r]的lca和,可以转化为,先把[l,r]中每个到根的路径+1,再求一次x到根的前缀和。 然后[l,r]这种显然可以差分为两个询问[1..r]和[1..l-1],因此先
阅读全文
[NOIP2018] 保卫王国
摘要:思路: DDP板题,就常规思路:
f[i][0/1]表示(不)选i点,的最小代价。
g[i][0/1]即对应的f除去son[v]的贡献 然后利用
g−>f的转移退出矩阵转移式,利用结合率线段树维护即可。 code: #include<bits/stdc++.h> using namespace
阅读全文
树链剖分
摘要:本来这个早该学了的,去luogu题解区学了一番,发现代码比LCT还长,当然还是要好写些。 概念: 重儿子:子节点重sz最大的儿子,否则是轻儿子 ps.一个点可以作为重儿子就叫它重节点了,反之轻节点。 重链:由一个轻节点开始然后是重节点,直到叶子。 轻边:由一个存在轻节点的边。 性质:树上一条链上最多
阅读全文