Description
有两个长度分别为\(n,m\)的珠子序列\(S,T\),每种珠子可能是黑色或者白色,同色的珠子视为本质相同。
我们进行\(n + m\)次操作,每次从\(S,T\)中的一个的头部取出一个珠子,放到我们结果序列的尾部,这样能形成一个新的序列。定义两种方案不同,当且仅当存在一步使得这一步两种方案一个从\(S\)取一个从\(T\)取。那么我们假设最后可能的结果序列有\(k\)种,我们把他们用\(1\ldots k\)编号,假设\(a_k\)为编号为\(k\)的序列的操作方案数量,求: \[ \sum_{i = 1}^k a_i^2 \] \(n,m\leq 500\)。
Solution
那个平方是不是很不好处理啊……
那么\(a_i\)一定可以表示为若干个\(1\)相加,每个\(1\)都代表了一种可以形成序列\(i\)的操作方案,平方之后这些\(1\)就会两两配对(参考二项式定理?)。
那么问题就转化成了求有多少对(可以相同也可以不相同的)操作序列可以生成同样的结果序列。这个DP一下就好力,,,
Code
1 |
|