zoukankan      html  css  js  c++  java
  • 计算系数

    二项式定理

    (ax+by)^k%p=sigma(i=0,k) c[i]*x^i*y^(k-i)    c[i]=a^i*b^(k-i)*C(i,k)

    要开long long虽然有模数,但在计算加法时可能会溢出使答案不正确

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 const long long maxn=1007;
     6 const long long mod=10007;
     7 long long f[maxn+7][maxn+7],ans;
     8 long long a,b,k,n,m;
     9 void maketable(){
    10     for(long long i=0;i<=maxn;i++)
    11         for(long long j=1;j<=maxn;j++)
    12             f[i][j]=1;
    13     for(long long i=2;i<=k;i++)
    14         for(long long j=2;j<=i;j++)
    15             f[i][j]=(f[i-1][j-1]+f[i-1][j])%mod;     
    16 }
    17 long long quick(long long a,long long b,long long p){
    18     long long ans=1;
    19     for( ;b;b>>=1,a=(a*a)%p){
    20         if(b&1==1){
    21             ans=(ans*a)%p;
    22         }
    23     }
    24     return ans;
    25 }
    26 int main(){
    27     cin>>a>>b>>k>>n>>m;
    28     maketable();
    29     ans=(quick(a,n,mod)*quick(b,m,mod)*f[k][n+1])%mod;
    30     cout<<ans<<endl;
    31     return 0; 
    32 } 
  • 相关阅读:
    单调队列和单调栈
    二叉搜索树(BST)
    高斯消元和高斯约旦消元 Gauss(-Jordan) Elimination
    扩展欧几里德算法
    基数排序
    智力题研究
    快速排序和快速选择
    快读模板
    C#知识点
    C#字段属性设置
  • 原文地址:https://www.cnblogs.com/lcan/p/9478361.html
Copyright © 2011-2022 走看看