zoukankan      html  css  js  c++  java
  • OTZ%%%子谦。大佬

    又上了节课。。。俩题

    计算系数    组合数问题。。。

    要不是大佬指点就只能阶乘暴力算了

    (主要还是我忘了杨辉三角)

    杨辉三角与组合数C有着千丝万缕的联系,在计算,使用方面相当方便。

    先说计算系数

    计算系数

    给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m项的系数。

    输出结果%10007

    #include<bits/stdc++.h>
    using namespace std;
    long long k,a,b;
    long long n,m;
    long long t=1;
    long long c[1005][1005];
    int main(){
    cin>>a>>b>>k>>m>>n;
    c[0][0]=1;
    a=a%10007;
    b=b%10007;
    k=k%10007;
    n=n%10007;
    m=m%10007;//输入需要先取模,不然会很大
    for(int i=1;i<=k;i++){
    for(int j=1;j<=i;j++){
    c[i][0]=1;
    c[i][j]=c[i-1][j]+c[i-1][j-1];//处理原理,杨辉三角
    c[i][j]%=10007;//预处理,待会直接调用
    }
    }
    for(int i=1;i<=m;i++){
    t*=a;
    t%=10007;
    }
    for(int i=1;i<=n;i++){
    t*=b;
    t%=10007;
    }//忘记*a*b很致命...
    cout<<(t%10007*c[k][n]%10007)%10007;
      return 0;
    }

    组合数问题

    给定 n,m 和 k,对于所有的  0in,0jmin(i,m) 有多少对 (i,j) 满足C 是 k的倍数。

    #include<bits/stdc++.h>
    using namespace std;
    int k;
    int n,m;
    int t;
    int c[2005][2005];
    int ans[2005][2005];
    int main(){
        scanf("%d%d",&t,&k);
        for(int i=0;i<=2000;i++) c[i][0]=1;
        for(int i=1;i<=2000;i++){
            for(int j=1;j<=i;j++){
                c[i][j]=(c[i-1][j]+c[i-1][j-1])%k;//这里取模免去以后的判断
            }
        }
        for(int i=1;i<=2000;i++){
            for(int j=1;j<=i;j++){
                ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1];//前缀和,减去重复的
                if(!c[i][j]) ans[i][j]++;
            }
            ans[i][i+1]=ans[i][i];
        }
        for(int a=1;a<=t;a++){
            scanf("%d%d",&n,&m);
            if(n<m) m=n;
            printf("%d
    ",ans[n][m]);
        }
        return 0;
    }

    同样杨辉三角

    最后%下子谦。

  • 相关阅读:
    video 属性和事件用法大全
    微信小程序 组件通信相关知识整理
    JavaScript实现登录窗口的拖拽
    JS 各种宽高
    CSS3 Animation
    CSS3 Transition
    CSS3 Transform
    vue 回到页面顶部
    element-ui 动态换肤
    Chrome浏览器下自动填充的输入框背景
  • 原文地址:https://www.cnblogs.com/648-233/p/10656561.html
Copyright © 2011-2022 走看看