我的思路还是实现有问题?有详细注释,wa50分

cin>>a>>b>>k>>n>>m;
//a,b为x,y的系数,n为ax的指数,m为by的指数
for (int i=0;i<=k;++i) { //递推组合数
c[i][0]=1;
for (int j=1;j<=i;++j)
c[i][j]=c[i-1][j-1]+c[i-1][j]%Mod; //边乘边取模
}
cout<<c[k][m]*qmod(a,k-m)*qmod(b,m)%Mod;
//将计算粗来的结果带c(m,k)*a^(k-m)*b^m求系数
经测试qmod函数是没有问题的,c数组也初始化为0
qmod函数的返回值,c数组均为long long类型
但是只过了5个点

3 条评论

  • @ 2016-02-06 11:06:44

    c[i][j]=c[i-1][j-1]+c[i-1][j]%Mod; //边乘边取模

    你的括号呢,只取了后面的模

  • @ 2015-10-21 08:39:52

    如果是只有正整数的话试下unsigned long long?

  • @ 2015-10-18 19:05:01

    取模的优先级?

  • 1

信息

ID
1739
难度
6
分类
数论 点击显示
标签
递交数
3863
已通过
1096
通过率
28%
被复制
15
上传者