P3240 [HNOI2015]实验比较

题目大意:

  给定一些画的质量关系(<,=),问最多可以组成都少个不同的不下降序列。(1=2等价于2=1)

  输入中保证对于每一个x,最多只有一个y满足y<x。

题目解法:

  首先,对于相等的画,我们用并查集进行合并。

  对于小于关系,我们可以建图维护。且由题意得我们建立的图一定是一个森林。为方便处理,我们增加一个节点,将每棵树的根节点与之相连,将森林连为一棵树,这显然是不影响结果的。

  然后可进行树形dp。对于一个节点,其不同分支上的点可以通过相等进行合并。因此对于每一个节点我们还需要维护形成序列的长度(1=2的长度为1)。f[i][j]表示i的子树中长度为j的序列的方案数。转移时遍历每一个子节点,将尚未被该节点更新过的f值和该节点的f值进行更新。转移方程显然是这两个f相乘在乘上两个序列合并的方案数。calc(a,b,c)表示长度为a的序列第一位固定和长度为b的序列组合得到长度为c的序列的方案数。显然,calc(a,b,c)=\binom{c-1}{a-1}*\binom{a-1}{a+b-c}

  复杂度O(n^3)

  

猜你喜欢

转载自www.cnblogs.com/myrcella/p/11710608.html