标签:class 杨辉三角 for targe include 技术 nbsp main 元素
所以可以将题目转化为求 C(k , m)*( ax ) ^ n * ( by ) ^ m 的系数 C(k , m)* a ^ n * b ^ m
提示:
1.组合数和杨辉三角形元素一一对应
把杨辉三角形放入一个二维数组,C(n , m)对应第n行第m列元素
注意起点为0行0列
2.使用快速幂
3.输入的各个数字先mod 10007 (为了计算准确)
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<string> #include<cstring> using namespace std; int a,b,k,n,m; int f[1005][1005]; int pow(int x,int y) { int ret=1; while(y) { if(y%2==1) ret=ret*x%10007; x=x*x%10007; y=y/2; } return ret; } int main() { cin>>a>>b>>k>>n>>m; a%=10007;b%=10007;k%=10007;n%=10007;m%=10007; f[0][0]=1; for(int i=1;i<=k;i++) { f[i][0]=1; for(int j=1;j<=i;j++) f[i][j]=(f[i-1][j]+f[i-1][j-1])%10007; } cout<<f[k][m]*pow(a,n)%10007*pow(b,m)%10007; return 0; }
标签:class 杨辉三角 for targe include 技术 nbsp main 元素
原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10639130.html