• 计算系数



     思路:

    DP做法,但考试时死活没想到如何来模拟这样的多项式

    f[i][j] 表示 xyj 的系数,所以你可以发现,k并没有用,因为给了你要求的 xym  ,一直往后推出到答案就好啦

    样例解释:1 1 3 1 2 

    f[0][1]=0
    f[0][0]=1

    f[0][2]=0
    f[0][1]=1

    f[1][0]=0
    f[0][0]=1

    f[1][1]=0
    f[0][1]=1

    f[1][1]=1
    f[1][0]=1

    f[1][2]=0
    f[0][2]=1

    f[1][2]=1
    f[1][1]=2

    因为后面的状态全靠之前的状态推出,完全符合 DP 的思想

    代码

    #include<stdio.h>
    const int MX=10001,P=10007;
    long long f[MX][MX];
    int a,b,k,n,m;
    
    int main()
    {
        scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
        f[0][0]=1;
        for(int i=0;i<=n;++i) 
        {
            for(int j=0;j<=m;++j)
            {
                if(i>0) 
                    f[i][j]=(f[i][j]+f[i-1][j]*a)%P;
                if(j>0) 
                    f[i][j]=(f[i][j]+f[i][j-1]*b)%P;    
            }
        }
        printf("%lld",f[n][m]);
        return 0;
    }

    updated:2018-10-25

    现在才发现这是道裸的二项式定理,k其实是有用的,因为 x的次方加上 y的次方 = k

    这就告诉你了这在杨辉三角的哪一行,预处理推出,加上快速幂求 an*bm

    相乘就是答案啦~

    code

    #include<stdio.h> 
    #include<algorithm> 
    using namespace std;
    const int mxn=1010,P=10007;
    long long a,b,k,n,m;
    long long c[mxn][mxn];
    
    long long ksm(long x,long d) {
        long long re=1;
        while(d) {
            if(d&1) re=re*x%P;
            x=x*x%P;
            d>>=1;
        }
        return re;
    }
    
    int ycl() {
        c[1][1]=1;
        for(int i=0;i<=1000;++i) c[i][0]=1;
        for(int i=2;i<=1000;++i) {
            for(int j=1;j<=i;++j) {
                c[i][j]=(c[i-1][j]+c[i-1][j-1])%P;
            }
        }
    } 
    
    int main() 
    {
        ycl();
        scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
        a%=P,b%=P;
        long long ans=ksm(a,n)*ksm(b,m)*c[k][n]%P;
        printf("%lld",ans);
        return 0;
    }
    从0到1很难,但从1到100很容易
  • 相关阅读:
    sql编码造成的安全问题(基于mysql8.0版本)
    [HY000] [2054] php连接mysql时错误
    jetbrains(phpstrom,webstorm等)破解
    XSS(二)
    XSS(一)
    ctf中rsa攻击方法
    扩展欧几里得算法证明及求乘法逆元
    mac泛洪攻击&arp欺骗(python脚本)
    Flutter 中 实现 单选对话框 和页面中实现单选框
    解决Flutter混合开发时 is not a readable directory 问题
  • 原文地址:https://www.cnblogs.com/qseer/p/9594271.html
Copyright © 2020-2023  润新知