洛谷 1313||NOIP 2011 计算系数 二项式定理 解题报告

来源:互联网 发布:vps安装python 编辑:程序博客网 时间:2024/05/19 03:45

题目描述

给定一个多项式(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 ≤10 ;

对于50% 的数据,有 a = 1,b = 1;

对于100%的数据,有 0 ≤k ≤1,000,0≤n, m ≤k ,且n + m = k ,0 ≤a ,b ≤1,000,000。

思路

很稳的二项式定理,由于数据只有1000所以可以杨辉三角暴力推导。记得在递推过程中间取模不然就爆炸吧。。。
别忘记了x与y有系数所以一开始ans=pow(a,n)pow(b,m))modP

好像不用开long long?
NOIP2017绝对不可能这么水!

代码

#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<vector>using namespace std;const int N=1100+10;const int mod=10007;long long a,b,k,n,m,f[N][N],ans;void get(){    memset(f,0,sizeof(f));    f[1][1]=1;f[1][2]=1;    for (int i=1;i<=1010;i++)    f[i][1]=1;    for (int i=2;i<=1010;i++)    for (int j=2;j<=1010;j++)    f[i][j]=(f[i-1][j-1]+f[i-1][j])%mod;}long long pow(int x,int p){    if (p==0) return 1;    long long tmp=pow(x,p/2)%mod;    tmp=(tmp*tmp)%mod;    if (p&1) tmp=(tmp*x)%mod;    return tmp;}int main(){    scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);    ans=(pow(a,n)*pow(b,m))%mod;    get();    ans*=f[k][m+1];    ans%=mod;    printf("%lld\n",ans);    return 0;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 肚子上的松皮怎么办 在公司天天背锅怎么办 职场老实背锅怎么办 三星a8充不了电怎么办 果6软件连不上网怎么办 孩子在幼儿园磕伤了怎么办 小孩在幼儿园摔骨折了怎么办 孩子在幼儿园摔骨折了怎么办 大腿被撞了很痛怎么办 马面褶子坏了怎么办 纱料衣服有褶怎么办 裙子如果后背那里小了怎么办 湖州耳朵鸣很严重怎么办 预授权撤销错了怎么办 打酒店里小卡片电话被骗怎么办 本科错过了选导师该怎么办 本科导师威胁学生不让毕业怎么办 意向导师名额满了怎么办? 扔的瓶子被限制怎么办 左钝缘支起始部重度狭窄怎么办 吃了抑郁症药困怎么办 如果股票退市持股人怎么办 电信身份信息审核失败怎么办 打完肌肉针肿了怎么办 refa掉了一个球怎么办 左腿比右腿粗怎么办 产妇上火怎么办吃什么下火呢 哺乳期上火怎么办吃什么下火 前扣内衣有点紧怎么办 橱柜做了小10厘米怎么办 一个月宝宝体检胸围35怎么办 月经量少脸上长斑怎么办 下压100上压160怎么办 怎么办去台湾新的驻签 学生去韩国旅游签证怎么办 猪的眼睛赛肿了怎么办 纹眉没有修复霜怎么办 衣服搞到走珠露香水洗不掉怎么办 涂牙膏把脸烧伤怎么办 月经血排不出来怎么办 猫眼角膜掉了一块怎么办