Easy(生成函数与组合数)

这题的主要难点在于处理min符号。

这里提供两种思路,用于参考。

从min出发,我们令c_i=min(a_i,b_i),于是我们有a_i=c_i+A_ib_i=c_i+B_i,以及A_i,B_i>=0.我们期望得到的结果是可以通过计算ci来计算最后的值。通过观察,我们不妨令c_i<=min(a_i,b_i),这样,在ci数组已经确定的情况下,总共有\left ( ^{N-S+K-1}_{ K-1} \right )*\left ( ^{M-S+K-1}_{ K-1} \right )种方案,,其中S是ci数组的和。为什么我们要计算这个东西呢,假如最小值序列为(1,2,3),我们发现被(1,1,1),(1,1,2),(1,1,3),(1,2,1),(1,2,2),(1,2,3)各统计了一次,这意味着什么呢,意味着我们可以通过统计方案数进而统计贡献。因为这两者我们已经构造了一个等价关系。

第二种方法,我们不处理min,考虑到p值的计算是先乘后加,这与多项式乘法内涵一致,因此我们列出以下式子f=(\sum min(i,j)x^iy^j)^n。也就是第一个数我们取a1=i,b1=j,那么贡献就是min(i,j),那么我们同理第二个数第三个数,那么展开后x^ny^m前面的系数就是我们想要的。接下来考虑化简这个式子,考察g=\sum min(i,j)x^iy^j将系数列成一张表,得\begin{pmatrix} & 1 & 1 & 1 & 1 & ...\\ & 1 & 2 & 2 & 2 & ...\\ & 1 & 2 & 3 & 3 & ...\\ & 1 & 2 & 3 & 4 & ...\\ \end{pmatrix}

于是将系数整体下移并作差,即(1-x*y)*g=\begin{bmatrix} 1&1 &... \\ 1& 1 &... \\ 1&1 &... \end{bmatrix},这样每一行,每一列都是关于x,y的等比数列,继续化简得(1-xy)g=\frac{x*y}{(1-x)(1-y)},那么f=(\frac{x*y}{(1-x)(1-y)(1-xy)})^k,这个模型比较常见,展开成三个多项式的k次方乘积即可。下略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值