zoukankan      html  css  js  c++  java
  • 组合套路

    一个很水但是很有用的结论:

    \(C_m^n=C_m^{n-m}\)

    当柿子不好联想组合意义时可以试一下转换

    一个水结论但用处挺多:

    \(kC_n^k=nC_{n-1}^{k-1}\)

    上面两个证明直接下降幂定义展开下就结了

    范德蒙德卷积(考虑组合意义易得)

    \(\sum_{i=0}^k C_n^i C_m^{k-i} = C_{m+n}^k\)

    两个小推论:

    \(\sum_{k=1}^n k(C_n^k)^2=nC_{2n-1}^{n-1}\)

    \(\sum_{i=0}^{n}(C_n^i)^2=C_{2n}^{n-1}\)

    都用一下第一个柿子,剩下比较显然。

    a very nice blog:

    nice blog

    组合数拆开与下降幂组合,再提出项并回去变成形式好的组合数。
    具体题目:如何优雅的求和,组合数问题

    两个求对点值求下降幂的方式:

    \(f(x)=\sum a_ix^i,f(x)=b_ix^{\underline{i}}\)

    1.用k阶差分的第一项。

    \(\frac{b_i}{i!}=c_i\)

    \(f(x)=\sum c_i \frac{x^{\underline{i}}}{i!}=\sum c_i C^x_i\)

    差分可得:

    \(\Delta f(x)=f(x+1)-f(x)=\sum c_i C^x_{i-1}\)

    可以看出,当组合数等于1的时候,也就是k阶差分的第一项,就是答案。

    对于k阶差分有个式子:

    \(\Delta^kf(0)=\sum_{i=0}^k (-1)^{k-i} C^k_i a_i\)

    这个东西咋处理呢?拆开组合数,变成最经典的卷积式。

    \(A(x)=\frac{(-1)^i}{i!}\) \(B(x)=\frac{a_i}{i!}\)

    两个一卷就是\(c\)

    2.利用\(e^x\), 指数型生成函数

    设出点值的指数型生成函数:

    \(\sum \frac{f(i)}{i!}x^i=\sum \frac{x^i}{i!} \sum f_jx^{\underline{j}}\)

    \(=\sum f_i \sum \frac{x^j}{(j-i)}=\sum f_i x^i \sum \frac{x^j}{j!}\)

    后面的柿子变成了\(e^x\),卷积即可。

  • 相关阅读:
    C# 上传辅助方法
    C# 经纬度计算
    C#Excel导出反射数据集
    C# 数据模板导出
    C# 百度经纬度获取地址信息
    【平台开发】— 5.后端:代码分层
    【平台开发】— 4.mysql建库建表
    【平台开发】— 3.前端开发思路
    【平台开发】— 2.前端:vue-element-admin
    【平台开发】— 1.开篇
  • 原文地址:https://www.cnblogs.com/Atoner/p/13066423.html
Copyright © 2011-2022 走看看