zoukankan      html  css  js  c++  java
  • bzoj 3028: 食物 生成函数

    不管怎么求似乎都不太好求,我们试试生成函数.
    这个东西好神奇.
    生成函数的精华是两个生成函数相乘,对应 $x^{i}$ 前的系数表示取 $i$ 个时的方案数.
    有时候,我们会将函数按等比数列求和公式进行压缩,这样会更方便.
    首先,将所有物品的生成函数都列出来,发现所有式子的乘积为 $frac{x}{(x-4)^{n}}$
    即 $x imes$$frac{1}{(1-x)^4}$.
    依据麦克劳林展开,$frac{1}{(1-x)^n}$的展开为 $sum_{i=0}^{infty}C_{n+i-1}^{n-1}x^i$.
    再乘一个 $x$,并将 $n=4$ 带入,得 $sum_{i=0}^{infty}C_{2+i}^{3}x^i$
    答案即为 $C_{2+n}^{3}$,真是壮观.

    Code:

    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <iostream> 
    #define ll long long 
    #define mod 10007
    using namespace std; 
    int main(){
        int n=0; char c;
        while(cin>>c) n*=10,n%=mod,n+=c-'0',n%=mod;     
        cout << ((((long long)n*(n+2)*(n+1))%mod)*1668)%mod; 
        return 0; 
    }
    

      

  • 相关阅读:
    jsp页面增加语音播报
    tomcat页面重定向跳转
    飘窗
    将回车键与页面ID绑定
    例35:十进制转二进制
    例33:求100-200间素数
    例30:尼科彻斯定理
    例29:哥德巴赫猜想
    例28:斐波那契数列
    例27:哈希查找
  • 原文地址:https://www.cnblogs.com/guangheli/p/10741023.html
Copyright © 2011-2022 走看看