ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

P8329 ZJOI2022 树 题解 / 容斥

P8329 ZJOI2022 树 题解 / 容斥

题目传送门:P8329 ZJOI2022 树。

\(F(S)\) 表示第一棵树的叶子集合为 \(S\) 的方案数,\(G(T)\) 表示第二棵树的叶子集合为 \(T\) 的方案数。

那么答案即为 \(ans=\sum\limits_{S \cap T = \varnothing,S \cup T=\{1,2,3,\cdots,n\}} F(s)G(T)\)

考虑容斥设 \(F'(s)\) 表示第一颗树的叶子集合包含于 \(S\) 的方案数,\(G'(T)\) 表示第二棵树的叶子集合包含于集合 \(T\) 的方案数。

那么

\[\begin{aligned} ans &= \sum\limits_{S \cap T = \varnothing,S \cup T=\{1,2,3,\cdots,n\}} F(s)G(T) \\ &= \sum\limits_{S \cap T = \varnothing,S \cup T=\{1,2,3,\cdots,n\}} \sum\limits_{S' \subset S} \sum\limits_{T'\subset T} F'(S') G'(T') (-1)^{|S|-|S'|+|T|-|T'|} \\ &= \sum\limits_{S' \cap T' = \varnothing} F'(S') G'(T') (-1)^{n-|S'|-|T'|} 2 ^{n-|S'|-|T'|} \\ &= \sum\limits_{S' \cap T' = \varnothing} F'(S') G'(T') (-2)^{n-|S'|-|T'|}\end{aligned} \]

相当于对于不在 \(S',T'\) 中的数带了 \(-2\) 的贡献。

考虑 dp,设 \(dp_{i,j,k}\) 表示确定 \([1,i]\)\(S',T'\) 的情况,且 \(|\{1,2,3,\cdots ,i\}\cap S'|=j,|\{i+1,i+2,\cdots n\}\cap T'|=k\) 的方案数。

转移的话考虑 \(i\) 属于哪里,并分配第一棵树 \(i\) 和第二棵树 \(i-1\) 父亲。

  1. 属于 \(S'\) 那么 \(f_{i,j,k}\leftarrow f_{i-1,j-1,k}(j-1)k\)
  2. 属于 \(T'\) 那么 \(f_{i,j,k}\leftarrow f_{i-1,j,k-1}j(k-1)\)
  3. 都不属于 \(f_{i,j,k}\leftarrow -2f_{i-1,j,k}jk\)

至于系数,父亲只能挂在非叶子节点上,而第二棵树上是叶子,那么第一棵树一定不是。

最后答案即为 \(\sum\sum f_{i,j,1}\)

返回列表