vijos - P1739计算系数 (多项式计算 + 杨辉三角形 + 快速幂)
来源:互联网 发布:js事件驱动定义 编辑:程序博客网 时间:2024/05/09 16:53
P1739计算系数
Accepted
描述
给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数。
格式
输入格式
共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。
输出格式
输出共1行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007取模后的结果。
样例1
样例输入1[复制]
1 1 3 1 2
样例输出1[复制]
3
限制
1s
提示
对于30%的数据,有0 ≤ k ≤ 10;
对于50%的数据,有a = 1, b = 1;
对于100%的数据,有0 ≤ k ≤ 1000,0 ≤ n, m ≤ k,且n+m = k,0 ≤ a,b ≤ 1,000,000.
来源
NOIp2011提高组Day2第一题
这道题目,最开始有点懵,没办法,高中的只是基本都忘得一干二净了,后来百科了一下,发现他妈的就是个简单的组合数
C(k,m) * a^i*b^j(i + j == m)极为(a + b)^m中的第i项
所以直接用快速幂取模解决问题
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <cstdio>#include <string>#include <ctime>using namespace std;typedef long long LL;const int MAXN = 1e3 + 5;const int mod = 10007;LL A[2][MAXN];LL mod_pow(LL x,LL n,LL mod) { if(n == 0) return 1; LL ret = mod_pow(x * x % mod, n / 2, mod); if(n & 1) ret = ret * x % mod; return ret;}int main() { int a, b, k, n, m; int opt = 0; scanf("%d%d%d%d%d", &a, &b, &k, &n, &m); A[0][0] = 1,A[0][1] = 1; for(int i = 2; i <= k; i ++) { opt = !opt; A[opt][0] = 1; for(int j = 1; j < i; j ++) { A[opt][j] =(A[!opt][j - 1] + A[!opt][j]) % mod; } A[opt][i] = 1; } LL ans = mod_pow(a, n, mod) * mod_pow(b, m, mod) * A[opt][n] % mod; printf("%I64d\n",ans); return 0;}
1 0
- vijos - P1739计算系数 (多项式计算 + 杨辉三角形 + 快速幂)
- vijos P1739 计算系数
- vijos P1739计算系数 (组合数学)
- 计算多项式系数杨辉三角
- [vijos 1739]计算系数
- 【基础练习】【组合数+快速幂】codevs1137 计算系数题解
- 计算系数
- 计算系数
- 计算系数
- 计算系数
- 计算系数
- 计算系数
- 多项式计算
- 多项式计算
- 多项式计算
- 计算多项式
- 计算多项式
- 计算多项式
- [ASM]Linux x86平台汇编实例
- HDU 2544 最短路 <SPFA算法>
- POJ 动态规划题目列表
- TCP与UDP区别
- 粗略。。。类设计的基本经验之笔记
- vijos - P1739计算系数 (多项式计算 + 杨辉三角形 + 快速幂)
- Fragment结合viewPager和下面4个页卡的使用
- mysql需要的rpm包
- ios-GCD详解
- 前30阶模n剩余类环上的乘法表
- 在Linux DeviceTree添加dtsi文件并在驱动中读取节点信息写入sys文件系统
- 粗略。。类设计的基本经验2之笔记
- 手游服务器之数据IO进化
- 贝叶斯决策论小结