首页 > 其他 > 详细

P6478 游戏

时间:2020-10-02 00:01:03      阅读:32      评论:0      收藏:0      [点我收藏+]

P6478 游戏

有一棵\(2m\)个点的有根树,其中有\(m\)个黑点, \(m\)个白点。

将黑点和白点分别指定顺序。

如果第\(i\)个黑点和第\(i\)个白点之间有祖孙关系,则记为好事件。(容易发现一共只有\(m\)个事件)

求好事件的个数恰好为\(0...m\)的(指定顺序的)方案数。\((m\le5000)\)

把恰好去掉,开始二项式反演

只认定\(k\)个好事件,其余随便

\(f[u][k]\)\(u\)子树中产生\(k\)个好事件(可能更多)的方案数\(v\in son[u]\)

\(f[u][k]=\sum\limits_{i=0}^nf[u][i]*f[v][k-i]\)

\(s[u][0]\)为子树内白点个数,\(s[u][1]\)你懂

\(f[u][j+1]+=f[u][j]*(s[u][0]-j)\)

从剩余\(s[u][0]\)个白点找一个和根(黑点)匹配

\(F[k]\)为钦定\(k\)个好事件,其余放任自流的方案数,即\(f[1][0\sim m]\)

\(G[k]\)为恰好\(k\)个好事件方案数

\(F[k]=\sum\limits_{i=k}^n{i\choose k}G[i]\)

二项式反演

\[G[k]=\sum_{i=k}^n(-1)^{i-k}{i\choose k}F[i] \]

P6478 游戏

原文:https://www.cnblogs.com/shikeyu/p/13758985.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!