ABC220
ABC220
A
签到
B
签到
C
签到
D
简单\(dp\)
E
给定一颗\(n\)层的满二叉树,求有多少对距离为\(D\)的节点
解:
我们可以对每一层的节点只考虑其中一个,再将答案乘以\(2^{dep-1}\)
考虑每个点作为距离为\(d\)的一对节点的\(lca\)时的贡献
对于\(lca\)是一对节点中的一个的情况,计算子节点中有到自己距离为\(d\)的即可
在\(rt\)的子节点中,左子树距离\(rt\)为\(k\)的节点数有\(2^k-1\)个,右子树距离\(rt\)为\(d-k\)的节点数有\(2^{d-k-1}\)个
所以不管\(k\)等于多少,方案数都是\(2^{d-2}\)
注意边界,并不是所有\(k\)都能取到,但能取到的一定是连续对称的一段
F
太裸不写
裸的换根\(dp\)
G
在\(n(1000)\)个顶点中选四个构成一个等边梯形,每个点有点权,求选出的四个点的最大点权之和
解:
崛了
组成等边梯形的一组平行对边的特点:
(1)中垂线重合
(2)中点不重合
将线段按斜率第一关键字,中点第二关键字排序
将斜率相同的做前缀最大值,找前面第一个中点不同的位置贡献取\(max\)