RQNOJ659 计算系数

http://www.rqnoj.cn/problem/659

描述

给定一个多项式(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第一题

大意:给定一个多项式(ax + by)^k,请求出多项式展开后x^n*y^m项的系数。

题解:求杨辉三角第k行(有k个数的那行)第m个,乘上a^n和b^m的快速幂取模。

特殊处理:if(n+m!=k) puts("0"); ///就是k次幂的各项x^n*y^m的n+m都是等于k的,没有不等于k的项,相当于这项系数是0。(但没有这样的数据,我想多了)

数据较大,最好全用long long。

 1 //#pragma comment(linker, "/STACK:102400000,102400000")
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<iostream>
 5 #include<cstring>
 6 #include<algorithm>
 7 #include<cmath>
 8 #include<map>
 9 #include<set>
10 #include<stack>
11 #include<queue>
12 using namespace std;
13 #define ll long long
14 #define usint unsigned int
15 #define mz(array) memset(array, 0, sizeof(array))
16 #define minf(array) memset(array, 0x3f, sizeof(array))
17 #define REP(i,n) for(int i=0;i<(n);i++)
18 #define FOR(i,x,n) for(int i=(x);i<=(n);i++)
19 #define RD(x) scanf("%d",&x)
20 #define RD2(x,y) scanf("%d%d",&x,&y)
21 #define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
22 #define WN(x) printf("%d\n",x);
23 #define RE  freopen("D.in","r",stdin)
24 #define WE  freopen("1biao.out","w",stdout)
25
26 const int MOD=10007;
27
28 int f[1111][1111];
29 int a,b,k,x,y;
30 ll pow_mod(int x,int k){
31     ll re=1,t=x;
32     while(k>0){
33         if(k&1==1){re*=t;re%=MOD;}
34         t*=t;
35         t%=MOD;
36         k>>=1;
37     }
38     return re;
39 }
40
41 int main() {
42     ll i,j;
43     mz(f);
44     f[0][0]=1;
45     for(i=1; i<=1000; i++) {
46         f[i][0]=1;
47         for(j=1; j<=i; j++)
48             f[i][j]=(f[i-1][j-1]+f[i-1][j])%MOD;
49     }
50     while(scanf("%d%d%d%d%d",&a,&b,&k,&x,&y)!=EOF) {
51         if(x+y!=k) puts("0");
52         else {
53
54             printf("%lld\n",(((((ll)f[k][y]) * pow_mod(a,x)) % MOD) * pow_mod(b,y)) % MOD);
55         }
56     }
57     return 0;
58 }

RQNOJ659 计算系数,布布扣,bubuko.com

时间: 2024-10-12 21:48:24

RQNOJ659 计算系数的相关文章

codevs1137 计算系数

1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定一个多项式(ax + by)^k,请求出多项式展开后x^n y^m项的系数. 输入描述 Input Description 共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开. 输出描述 Output Description 输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,

洛谷P1313 计算系数

P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开. 输出格式: 输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果. 输入输出样例 输入样例#1: 1 1 3 1 2 输出样例#1: 3 说明 [数据范围] 对于30% 的数据,有 0 ≤k ≤1

计算系数(noip2011)

[问题描述]给定一个多项式(ax + by)^k,请求出多项式展开后(x^n)*(y^m)项的系数.[输入]输入文件名为 factor.in.共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开.[输出]输出文件名为 factor.out.输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果.[输入输出样例] factor.in factor.out 1 1 3 1 2 3 [数据范围] 对于 30%的数据,有0≤k≤10:对

vijos - P1739计算系数 (多项式计算 + 杨辉三角形 + 高速幂)

P1739计算系数 Accepted 标签:NOIP提高组2011[显示标签] 描写叙述 给定一个多项式(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 ≤

noip2011 计算系数

P1313 计算系数 431通过 1.4K提交 题目提供者该用户不存在 标签数论(数学相关)2011NOIp提高组 难度普及/提高- 提交该题 讨论 题解 记录 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开. 输出格式: 输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模

codevs 1137 计算系数

传送门 1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给定一个多项式(ax + by)^k,请求出多项式展开后x^n y^m项的系数. 输入描述 Input Description 共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开. 输出描述 Output Description 输出共 1 行,包含一个整数,表示所求的系

2011 计算系数

计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开. 输出格式: 输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果. 输入样例: 1 1 3 1 2 输出样例: 3 说明 [数据范围] 对于30% 的数据,有 0 ≤k ≤10 : 对于50% 的数据,有 a = 1,b

洛谷P1313 计算系数 数学 数论

洛谷P1313 计算系数 数学 数论 1.首先我们不管这个系数 a b 那么他的系数就是杨辉三角 他那项就是 c(k,n)x^n*y^m 2.然后现在加了系数 a 和 b ,那么就只要把 a 看做 x中的,然后a与x一样,相当a^n 3.可以发现,x^n*y^m项的系数一定有一个因数a^n*b^m,所以可以提取出来. 4.然后关于求C的话由两种方法,一种方法是杨辉三角 这样要 n^2 求 但数据再大点就挂了 5.然后还可以质因数分解求 6.我是用费马小定理求逆元做的,因为 mod 别的还行,除法

计算系数(NOIP2011 day2)

给定一个多项式 (ax + by)k . 输入a,b,k,n,m. 请求出多项式展开后 xnym 项的系数. [数据范围] 对于 30%的数据,有 0≤k≤10: 对于 50%的数据,有 a = 1,b = 1: 对于 100%的数据,有 0≤k≤1,000,0≤n, m≤k,且 n + m = k,0≤a,b≤1,000,000. 1 const 2 maxn=1000; 3 md=10007; 4 var 5 f:array[0..maxn,0..maxn] of longint; 6 a,