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\)

posted @ 2021-11-04 21:43  lovelyred  阅读(43)  评论(0)    收藏  举报