JZOJ 3027. 计算系数 (Standard IO) NOIP2011
题目
分析
这道题需要我们慢慢地推导
首先以我们做过的数学题为基础,很明显推出来的是个杨辉三角
1
11
121
1331
……
那到底是哪一个系数呢我们可以慢慢推导发现
输出的其实是杨辉三角里面的F【k+1】【k-n+1】*a^n*b^m
代码
1 #include<iostream> 2 #define M 10007 3 using namespace std; 4 long long a,b,k,n,m; 5 long long f[2001][2001]; 6 long long poww(int a,int b){ //快速幂,用for语句代替也可以 7 long long ans=1,base=a; 8 while(b) 9 { 10 if(b&1!=0) ans*=base; 11 ans%=M; 12 base*=base; 13 base%=M; 14 b>>=1; 15 } 16 return ans%M; 17 } 18 int main () 19 { 20 cin>>a>>b>>k>>n>>m; 21 f[1][1]=1; 22 for (int i=2;i<=k+2;i++) //杨辉三角 23 for (int j=1;j<=i;j++) 24 f[i][j]=(f[i-1][j-1]+f[i-1][j])%M; 25 cout<<((f[k+1][k-n+1]*poww(a,n)%M*poww(b,m))%M); 26 }
为何要逼自己长大,去闯不该闯的荒唐