题解 【NOIP2011】计算系数
【NOIP2011】计算系数
Description
给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^n * y^m 项的系数。
Input
共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。
Output
输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。
Sample Input
1 1 3 1 2
Sample Output
3
Hint
【数据范围】
对于 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。
Source
NOIP2011
数学,递推
解析
全班数学垫底的我竟然在讲数学题!!!
好吧它确实是一道数学题。
首先,二项式定理了解一下:
对于a与b的和的n次幂,
有:

因此,原式可化简为:
(ax)n (by)m × C(k,n) //实在没图片了
所以只要求组合数取模,快速幂就行了。
然后,我就想到了拓展欧几里得,逆元,卢卡斯定理等神奇的东西。。。
其实并不需要这么复杂,
聪明的中国人早就有自己的东西:杨辉三角!!
所以只要递推求组合数就可以了!!
最后上AC代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std; const int Mod=;
int a,b,k,m,n;
int f[][]; ll power(int a,int b){
ll r=;
while(b){
if((b&)) r=r*a%Mod;
a=(ll)a*a%Mod;
b>>=;
}
return r;
} int main(){
scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
for(int i=;i<=k;i++){
f[i][]=;
}
for(int i=;i<=k;i++){
for(int j=;j<=i;j++){
f[i][j]=((ll)f[i-][j]+(ll)f[i-][j-])%Mod;
}
}
ll ans=(ll)f[k][n]%Mod*(ll)power(a,n)%Mod*(ll)power(b,m)%Mod;
ans%=Mod;
printf("%lld\n",ans);
return ;
}
题解 【NOIP2011】计算系数的更多相关文章
- NOIP2011 计算系数
1计算系数 给定一个多项式 (ax + by)k ,请求出多项式展开后 x n y m 项的系数. [输入] 输入文件名为 factor.in. 共一行,包含 5 个整数,分别为 a,b,k,n,m, ...
- luoguP1313 [NOIp2011]计算系数 [组合数学]
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- [NOIP2011] 计算系数(二项式定理)
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- [noip2011]计算系数+二项式定理证明
大水题,二项式定理即可(忘得差不多了) 对于一个二项式,\((a+b)^n\)的结果为 \(\sum_{k=0}^{k<=n}C_{n}^{k}a^{n-k}b^k\) 证明: 由数学归纳法,当 ...
- NOIP2011计算系数;
#include<cmath> #include<algorithm> #include<stdio.h> #include<iostream> #de ...
- NOIP 2011 计算系数
洛谷 P1313 计算系数 洛谷传送门 JDOJ 1747: [NOIP2011]计算系数 D2 T1 JDOJ传送门 Description 给定一个多项式(ax + by)k,请求出多项式展开后x ...
- luoguP1313 计算系数 题解(NOIP2011)
P1313 计算系数 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<cm ...
- 洛谷P1313 [NOIP2011提高组Day2T1]计算系数
P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...
- 一本通1648【例 1】「NOIP2011」计算系数
1648: [例 1]「NOIP2011」计算系数 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 给定一个多项式 (ax+by)k ,请求出多项式展开后 x ...
随机推荐
- [官网]mono的官方安装方法
mono 官方的安装方法 https://www.mono-project.com/download/stable/#download-lin-centos Download Release chan ...
- 大数据备忘录———将数据从oracle导入impala中
上周遇到了将数据从oracle导入到impala的问题,这个项目耽误了我近一周的时间,虽然是种种原因导致的,但是还是做个总结. 需求首先是跑数据,跑数据这个就不叙述,用的是公司的平台. 讲讲耽误我最久 ...
- sqarkSQL hiveSql
查看数据库 show databases; 进入数据库 use 库名 查看表 show tables: select * from 表名 hdfs传输spark sql查询 hive找到指定路径sql ...
- pip安装源
目录 介绍 永久配置安装源 Windows MacOS.Linux 配置文件内容 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:htt ...
- Docker入门(一):安装
一. 安装docker 1. 删除已安装的docker yum remove docker \ docker-client \ docker-client-latest \ docker-common ...
- 怎样理解String的slice(), subString(), substr()三个方法
String.prototype.slice() 是js字符串的切片工具方法, 用于对字符串做'裁剪'操作, 不改变原字符串. 'helloworld'.slice(0,5); // 'hello'; ...
- hype-v上centos7部署高可用kubernetes集群实践
概述 在上一篇中已经实践了 非高可用的bubernetes集群的实践 普通的k8s集群当work node 故障时是高可用的,但是master node故障时将会发生灾难,因为k8s api serv ...
- 查找和杀掉占用GPU显存的进程
用只有2个G的显卡跑数据就需要在训练之前先把无关进程杀掉,防止跑到一半显存满了 nvidia-smi:显示当前GPU中的线程 kill -9 PID:输入PID以结束线程
- mysq练习
表名和字段 –1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) ...
- SQL Tuning 基础概述10
在<SQL Tuning 基础概述05 - Oracle 索引类型及介绍>的1.5小节,提到了几种"索引的常见执行计划": INDEX FULL SCAN:索引的全扫描 ...