洛谷 P1313 计算系数 解题报告
P1313 计算系数
题目描述
给定一个多项式\((by+ax)^k\),请求出多项式展开后\(x^n*y^m\)项的系数。
输入输出格式
输入格式:
共一行,包含5个整数,分别为\(a,b,k,n,m\),每两个整数之间用一个空格隔开。
输出格式:
共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。
思路:
由二项式定理得,结果为\(C_k^m*a^n*b^m \ mod \ 10007\)
因为10007是质数,所以我们可以用费马小定理求出阶乘逆元再直接求出\(C_k^m\),\(a,b\)则线性乘过去即可。
Code:
#include <cstdio>
#define ll long long
const ll mod=10007;
ll inv[2],a,b,k,n,m,ans=1,fac=1;
ll quick_pow(ll d,ll t)
{
ll f=1;
while(t)
{
if(t&1)
f=f*d%mod;
d=d*d%mod;
t>>=1;
}
return f;
}
void init()
{
scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
inv[0]=inv[1]=1;
for(int i=1;i<=n;i++)
{
inv[0]=inv[0]*i%mod;
ans=ans*a%mod;
}
for(int i=1;i<=m;i++)
{
inv[1]=inv[1]*i%mod;
ans=ans*b%mod;
}
for(int i=1;i<=k;i++)
fac=fac*i%mod;
inv[0]=quick_pow(inv[0],mod-2);
inv[1]=quick_pow(inv[1],mod-2);
}
void work()
{
ans=ans*fac%mod*inv[0]*inv[1]%mod;
printf("%lld\n",ans);
}
int main()
{
init();
work();
return 0;
}
2018.7.4
洛谷 P1313 计算系数 解题报告的更多相关文章
- 洛谷P1313 计算系数【快速幂+dp】
P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...
- 洛谷P1313 计算系数
P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...
- 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- 【数论】洛谷P1313计算系数
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- [NOIP2011] 洛谷P1313 计算系数
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- 洛谷 P1313 计算系数 —— 水题
题目:https://www.luogu.org/problemnew/show/P1313 不就是...C(k,n) * an * bm . 代码如下: #include<iostream&g ...
- 洛谷 P1313 计算系数
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- 【洛谷P1313 计算系数】
题目连接 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio&g ...
- 洛谷 P1313 计算系数 (二项式定理)
这道题正好复习了二项式定理 所以答案就是a^n * b^m * c(n, k) 然后注意一些细节 我一开始写组合数只写一行的组合数 即c[0] = 1; c[i] = c[i-1] * (n - i ...
随机推荐
- Appium 安装详细版教程
1.安装Appium Python Client包 输入命令 pip install Appium-Python-Client
- ubuntu下Open vSwitch安装
ubuntu下Open vSwitch安装 有关Open vSwitch的安装,网上有各种的教程资料,但一些已经过时,按照网上的教程,花费了大量时间,都没能安装成功.于是,通过查阅官方安装教程以及综合 ...
- Windows搭建python开发环境
python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 基本概念Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...
- 9.Hive Metastore Administration
前言metastore参数metastore的基本参数metastore的额外参数客户端参数使用zk自动发现mestastore启动hive metastore服务 前言 本节讲metastore相关 ...
- Flask之笔记集合
目录 一.简述 二.基本使用 三.配置文件 四.路由系统 2.自定义正则路由 五.模版语言 六.请求和响应 七.Session 2.自定义session 八.蓝图 九.message 十.中间件 十一 ...
- 11.15 Daily Scrum
今天是假期回来的第一个周末,也是我们团队的又一次进度汇总总结和调试工作开展,鉴于一周以来大家的工作有了很大的成果,所以,本次召开的会议主旨在于解决一些开发方面的细节问题,达成共识,为日后进一步的功能方 ...
- raise PDFEncryptionError('Unknown algorithm: param=%r' % param) pdfminer.pdfdocument.PDFEncryptionError: Unknown algorithm
使用pdfminer遇到的pdf文件加密问题: raise PDFEncryptionError('Unknown algorithm: param=%r' % param) pdfminer.pdf ...
- JavaBean 与 EJB 的区别
JavaBean在一般情况下指的是实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的 setter.getter方法,如果一个JavaBean需要在不同的JVM的进程中进行传递 ...
- js如何判断一个值是不是Array类型
本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的可以使用 instanceof操作符var arrayStr=new Array("1","2 ...
- C++编译与链接(2)-浅谈内部链接与外部链接
发现每次写技术博客时,都会在文章开头处花费一番功夫 ...从前,有一个程序员....他的名字叫magicsoar 为什么有时会出现aaa已在bbb中重定义的错误? 为什么有时会出现无法解析的外部符号? ...