IOer 题解

逆天组合意义。

题意

形式化题意:给定 \(n,m,u,v\) 求:

\[\sum_{k_1+k_2+k_3+...+k_m=n,\forall k_i\ge 0} \prod_{i=1}^m (v+u\times i)^{k_i} \]

数据范围: \(1\le m\le 2\times 10^5,1\le n\le 10^{18},0\le u,v \le 10^9\)

题解

考虑组合意义,假设我们现在有一些小球,一共有 \(m\) 类编号,\(\forall i<m\),编号为 \(i\) 的小球有 \(u\) 种,编号为 \(m\) 的小球有 \(u+v\) 种。
我们去求满足以下条件的小球序列的数量(允许相同编号的同一种球出现多次):

  1. 长度为 \(n+m-1\)
  2. \(\forall i<m\),编号为 \(i\) 的球至少出现了一个。
  3. \(p_i\) 表示编号为 \(i\) 的球出现的第一个位置,特殊地,\(p_0=0,p_m=n+m\),那么 \(\forall i<m,p_i<p_{i+1}\)

考虑怎么算这个东西,枚举 \(p\) 序列,那么:

  • \(p_1\) 之前,只能放编号为 \(m\) 的球,方案数是 \((u+v)^{p_1-1}\)
  • \(p_1\) 这个位置上,只能放编号为 \(1\) 的球,方案数是 \(u\)
  • 在区间 \((p_1,p_2)\) ,只能放编号为 \(m\)\(1\) 的球,方案数是 \((2u+v)^{p_2-p_1-1}\)
  • \(p_2\) 这个位置上,只能放编号为 \(2\) 的球,方案数是 \(u\)
    ...
  • 在区间 \((p_{m-1},p_m)\),什么球都可以放,方案数是 \((mu+v)^{p_m-p_{m-1}-1}\)

所以对于一个序列 \(\{p_i\}\) 方案数是 \(u^{m-1}\prod_{i=1}^m (u\times i+v)^{p_i-p_{i-1}-1}\)
如果令 \(k_i=p_i-p_{i-1}-1\),会发现这个式子刚刚好是原题的答案乘上 \(u^{m-1}\)

这个第 \(3\) 个限制非常烦人,考虑把它去掉。
注意到前 \(m-1\) 种编号的球除了编号不同外其余性质完全一样,所以任意一个只满足前两个限制的序列都可以通过重标号使得他满足第三个限制。
所以满足三个限制的序列个数就是只满足前两个限制的序列个数除以 \((m-1)!\)

而只满足前两个限制的序列个数通过简单容斥即可得到,复杂度 \(O(m\log n)\)\(\log\) 来自快速幂。

posted @ 2025-06-02 20:26  Green&White  阅读(25)  评论(0)    收藏  举报