题目传送门

Solution

应该这个做法不是很常见吧。

我们设 \(f_{i,j}\) 表示前面 \(i\) 个数,选出的数和为 \(j\) 的贡献之和。因为我们有以下式子:

\[\sum_{i=a}^{b} \binom{i}{a}=\binom{b+1}{a+1}
\]

所以,我们可以得到转移式:

\[f_{i,j}=\sum_{k} f_{i-1,k}\times \binom{j-k+1}{a_i+1}
\]

然后,我们假设设:

\[F_i(x)=\sum_{j=1}^{\infty} \binom{j}{a_i+1}x^{j-1}
\]

那么,我们就可以看出实际上 \(\prod_{i=1}^{n} F_i(x)\) 就是 \(f_{n,1},f_{n,2},...,f_{n,\infty}\) 的普通型生成函数。

于是,我们只需要求出 \(F_i(x)\) 的式子就好了。

我们可以得到如下推导:

设 \(S=\sum_{i=1}^{\infty} \binom{i}{a}x^{i}\)

则有:

\[S=x^a\sum_{i=0}^{\infty} \binom{i+a}{i}x^i
\]
\[\Rightarrow S=x^a\sum_{i=0}^{\infty} \binom{-a-1}{i}(-x)^i
\]
\[\Rightarrow S=x^a(1-x)^{-a-1}=x^a\frac{1}{(1-x)^{a+1}}
\]

所以,我们可以得到:

\[F_i(x)=x^{a_i}\frac{1}{(1-x)^{a_i+1}}
\]

那么,我们设 \(s=\sum_{i=1}^{n} a_i\),那么我们就可以得到:

\[\prod_{i=1}^{n} F_i(x)=x^{s}\frac{1}{(1-x)^{s+n}}
\]

那么这个多项式的第 \(i\) 项的系数就是 \(\binom{i+n-1}{n+s-1}\)。

那么,答案就是:

\[\sum_{i=0}^{m} \binom{i+n-1}{n+s-1}
\]
\[=\binom{n+m}{n+s}
\]

关于 Binomial Coefficient is Fun的更多相关文章

  1. Binomial Coefficient(二项式系数)

    In mathematics, any of the positive integers that occurs as a coefficient in the binomial theorem is ...

  2. Solution -「ARC 110D」Binomial Coefficient is Fun

    \(\mathcal{Description}\)   Link.   给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...

  3. UVA - 10375 Choose and divide[唯一分解定理]

    UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  4. Lucas定理

    Lucas' theorem In number theory, Lucas's theorem expresses the remainder of division of the binomial ...

  5. Conjugate prior relationships

    Conjugate prior relationships The following diagram summarizes conjugate prior relationships for a n ...

  6. java积累

    数组的使用 package javaDemo; import java.util.*; /** * * @author Administrator * @version 1.0 * * */ publ ...

  7. OI不得不知的那些数学定理

    Binomial theorem One can define\[{r \choose k}=\frac{r\,(r-1) \cdots (r-k+1)}{k!} =\frac{(r)_k}{k!}\ ...

  8. UVA10375 Choose and divide 质因数分解

    质因数分解: Choose and divide Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %l ...

  9. Codeforces/TopCoder/ProjectEuler/CodeChef 散题笔记 (持续更新)

    最近做到了一些有趣的散题,于是开个Blog记录一下吧… (如果有人想做这些题的话还是不要看题解吧…) 2017-03-16 PE 202 Laserbeam 题意:有一个正三角形的镜子屋,光线从$C$ ...

随机推荐

  1. 高德地图——骑行路线&骑行指定

    &plugin=AMap.Riding 也是[]中放json, 包含keyword和city,不能有途经1.骑行路线(关键字) <!DOCTYPE html> <html&g ...

  2. rEFI引导Win10+Ubuntu14双系统

    公司买了一台Alienware 15 R2,安装双系统折腾死我了,现在记录一下安装过程. 硬盘: 256固态+1T机械 安装顺序: 先Windows,再Ubuntu 不同BIOS启动方式下安装系统 U ...

  3. 快速使用 Docker 上手 Sentry-CLI - 玩转 Source Maps 使用 (create-react-app)

    系列 快速使用 Docker 上手 Sentry-CLI - 创建版本 入门 使用 sentry-cli 上传 source maps 时,您需要设置构建系统以创建版本(release)并上传与该版本 ...

  4. Leaflet 操作OSM(OpenStreetMap) 设置地图style

    Leaflet是一个开源的地图操作库,其中mapbox是其一个插件,这个插件可以自定义想要的地图格式.https://www.mapbox.com/mapbox-gl-js/api/这是其官网地址. ...

  5. proto buffer

    protobuf是一种高效的数据格式,平台无关.语言无关.可扩展,可用于 RPC 系统和持续数据存储系统. protobuf介绍 Protobuf是Protocol Buffer的简称,它是Googl ...

  6. 一、docker部署Jenkins

    1.部署启动脚本: [root@node10 docker-data]# cat start.sh docker run -d \ --restart=unless-stopped \ -v /opt ...

  7. git01_常用命令

    git与github介绍 Git是什么 Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目 版本控制器 CVS/SVN/Git SVN 客户端/服务器 GIT 客户端/ ...

  8. java多线程 synchronized 与lock锁 实现线程安全

    如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 通过卖火车票的例子 火车站要卖票,我们模 ...

  9. openswan中ISAKMP交互过程关键函数接口

    1. ISAKMP交互过程中关键函数接口 下面分别说明不同的阶段和模式下的函数接口以及对应的报文. 2. 第一阶段(Phase I)主模式函数接口 发送端 响应端 main_outI1 主模式第一包 ...

  10. js判断苹果端,安卓端

    <script type="text/javascript"> var browser = { versions : function() { var u = navi ...