zoukankan      html  css  js  c++  java
  • BZOJ3028

    Portal

    Description

    求满足(x_1+x_2+x_3+x_4+x_5+x_6+x_7+x_8=n(nleq10^{500}))的方案数,对(10007)取模。其中(2|x_1)(x_2in{0,1})(x_3in{0,1,2})(2|x_4-1)(4|x_5)(x_6in{0,1,2,3})(x_7in{0,1})(3|x_8)(x_{1..8}geq0)

    Solution

    生成函数(generation function),多用于解决多重集的组合问题。一个多重集(S)对应一个数列({a_k}),其中(k)(S)的类别数,(a_i)等于(i)(S)中的重数:那么多重集(S)的生成函数(g(x)=sum_{i=0}^{+infty}a_ix^i)
    这道题就是一个多重集组合的裸题。列出每个变量所在集合的生成函数:

    [egin{align*} g_1(x) &= 1+x^2+x^4+x^6+... = (1-x^2)^{-1} \ g_2(x) &= 1+x \ g_3(x) &= 1+x+x^2 \ g_4(x) &= x+x^3+x^5+x^7+... = (1-x^2)^{-1} \ g_5(x) &= 1+x^4+x^8+x^{12}+... = (1-x_4)^{-1} \ g_6(x) &= 1+x+x^2+x^3 \ g_7(x) &= 1+x \ g_8(x) &= 1+x^3+x^6+x^9+... = (1-x^3)^{-1} end{align*}$$相乘得到$G(x)=x(1-x)^{-4}$,其中$x^n$项的系数,就是和为$n$的方案数。依二项式定理展开,得到 $$ G(x)=sum_{i=1}^{+infty} (-1)^{i-1}inom{-4}{i-1} x^i $$$$egin{align*} ans &= (-1)^{n-1} inom{-4}{n-1} \ &= (-1)^{n-1} frac{prod_{i=0}^{n-2}(-4-i)}{(n-1)!} \ &= frac{prod_{i=0}^{n-2}(4+i)}{(n-1)!} \ &= frac{prod_{i=0}^{n-2}(4+(n-2)-i)}{(n-1)!} \ &= inom{n+2}{n-1} \ &= inom{n+2}{3} \ &equiv inom{⌊frac{n+2}{P}⌋}{0}inom{(n+2)mod P}{3} &pmod P \ &equiv inom{(n+2)mod P}{3} &pmod P end{align*}]

    时间复杂度(O(1))(不包括读入)。

    Code

    //食物
    #include <cstdio>
    int const P=10007;
    char n0[600];
    int main()
    {
        scanf("%s",n0+1); int n=0;
        for(int i=1;n0[i];i++) n=(n*10+n0[i]-'0')%P;
        int ans=(n+2)*(n+1)%P*n%P*1668%P;
        printf("%d
    ",ans%P);
    }
    

    P.S.

    我错误地推导出(inom{-4}{n-1}=inom{P-4}{(n-1)mod P}),但仍然A掉了这道题...感谢sbw巨佬
    发现LaTeX代码modpmodx mod y(x mod y)pmod p(pmod p)。以前都是打mod加空格的...

  • 相关阅读:
    wordpress wp_head()函数 浏览器顶部 空白28px 解决办法
    Google Code Project中文翻译
    PNY 必恩威 4G U盘 量产
    Ubuntu安装软件方法图文指南教程
    Web开发人员必须学习的5门课程
    正则表达式
    5个音乐伴奏下载网站推荐
    卸载“一键还原精灵”后,如何删除其备份的g.文件夹?
    常用开源协议详细解析
    零命令玩转Ubuntu 8.10(准备篇)
  • 原文地址:https://www.cnblogs.com/VisJiao/p/BZOJ3028.html
Copyright © 2011-2022 走看看