P9414 「NnOI R1-T3」元组

发布时间 2023-09-07 16:24:45作者: FOX_konata

原题

我们直接考虑\(LCA_{i=1}^{k}{b_i}\)显然是不太可取的,我们考虑我们在求的过程中肯定是把他们两两求\(LCA\),因此我们考虑把他这个柿子变成这样\(LCA_{i=1,j=1}^{i \leq k, j \leq k}{(LCA(b_i,b_j))}\)

根据抽屉原理,我们可以发现如果我们想让节点\(u\)成为这个\(p\)元组的答案,那里面\(LCA(a_i,a_j) \neq u\)的点对的个数必须严格小于\(k-1\)个,否则这\(k-1\)个点对组成的\(LCA\)显然\(LCA\)就不会是\(u\)

这说明什么?这说明我们如果要计算以\(u\)\(LCA\)的答案,那我们必须让\(u\)的所有子树里选的点的个数\(\leq k - 1\),且所有子树选点个数之和\(= p\),我们发现这是一个很显然的树上背包问题

我们设\(dp_{u,i}\)表示以\(u\)点为根的子树中选了\(i\)个点的方案数,转移显然,最终答案为\(\sum_{u}{dp_{u,p}}\)