https://www.luogu.org/problemnew/show/P1313
题目描述
给定一个多项式(by+ax)^k
,请求出多项式展开后x^ny^m 项的系数。

输入输出格式
输入格式:
共一行,包含55个整数,分别为a ,b ,k ,n ,m,每两个整数之间用一个空格隔开。

输出格式:
共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007取模后的结果
输入输出样例
输入样例#1:

1 1 3 1 2

输出样例#1:

   3

说明
【数据范围】

对于30%30% 的数据,有 0 ≤k ≤10;

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

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

noip2011提高组day2第1题
/*
这题在很久之前做过,现在再做了一遍
数学忘的差不多了,所以就重新推了一遍公式:
(ax + by)^ k
要拼凑出(x ^ n y^m)
首先一定有:n + m = k(现在我才发现题目后面有提到。。)
只有k个(ax + by)中选n个是ax,k-n = m个只能选by
所以根据组合得到:

ans= C(k,n) * a^n * b^m

a^n * b^m 这部分好办,直接来个快速幂(当然不用也是可以,效率低一点),但是都需要注意一个问题,用a之前要先a %= mod,或者数据类型用long long ,因为 a = a * a % mod 中的a * a 会超过int
但是对于C(k,n),没有除法取模的相关公式,直接算是觉对不行的,我之前做过,所以直接想到了杨辉三角可以算出C(k,n),自己展开(x + y)^2, (x + y)^3也可以发现他们系数分别是:
1 2 1,
1 3 3 1
对于x^n y^m,a = 1,b= 1的系数是杨辉三角中的c[k][n] + c[k][m]
但是a,b系数不一定都为1,最终得到: ans = a ^ n * b ^ m*(c[k][n] + c[k][m])
也有:c[k][n] + c[k][m] = c[k+1][n+1] (这里下标都从1开始,我为了杨辉三角打表少打一行,没有用这个)
这个可以参考之前我的做法:传送门
*/

#include <iostream>using namespace std;
typedef long long LL;
const LL mod = 1e4 + 7;  //除了数组内存要考虑一下,int最好用long long,不容易错
int c[1005][1005];
LL quickPow(LL a,LL b)
{//a %= mod;LL res = 1;while(b){if(b&1) res = res * a % mod;a = a * a % mod;b >>= 1;}return res % mod;
}
int main()
{LL a,b,k,n,m;cin>>a>>b>>k>>n>>m;for(int i = 1; i <= k; i++){c[i][1] = 1;c[i][i] = 1;}for(int i = 2; i <= k; i++){for(int j = 2; j <= k; j++){c[i][j] = (c[i-1][j]%mod + c[i-1][j-1]%mod)%mod;}}//cout<<c[k][n]<<" "<<c[k][m]<<endl;LL ans = (c[k][n] + c[k][m]) % mod;// cout<<ans<<endl;LL temp = (quickPow(a,n)%mod * quickPow(b,m)%mod)%mod;ans = (ans%mod * temp%mod)%mod;cout<<ans<<endl;return 0;
}

总结一下:
求排列组合中的组合数C(k,n)当无法直接求解时,要想到用杨辉三角来计算~~

P1313 计算系数(组合数)相关推荐

  1. 洛谷P1313 计算系数【快速幂+dp】

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

  2. 洛谷 P1313 计算系数

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  3. 洛谷 P1313 计算系数 —— 水题

    题目:https://www.luogu.org/problemnew/show/P1313 不就是...C(k,n) * an * bm . 代码如下: #include<iostream&g ...

  4. 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  5. 洛谷P1313 计算系数

    有一个公式:二项式定理-- 然后就没了-.. Code: #include<iostream> #include<cstdio> using namespace std; co ...

  6. 【洛谷P1313 计算系数】

    题目连接 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio&g ...

  7. 【洛谷p1313】计算系数

    (%%%hmr) 计算系数[传送门] 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(ax+by)k的计算需要用到二项式定理: 对于(x+y)k,有第r+1项的系数为:Tr+1= ...

  8. codevs1137 计算系数

    1137 计算系数 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 给定一个多项式(a ...

  9. 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)

    计算系数 题目描述 给定一个多项式(ax + by)k,请求出多项式展开后xn ym项的系数. [数据范围] 对于 30%的数据,有0≤k≤10: 对于 50%的数据,有a = 1,b = 1: 对于 ...

最新文章

  1. Windows Server 2003 AD升级到Windows Server 2008 AD的方法及详细步骤
  2. 互联网协议 — IPv4 — 分片与重组
  3. BLOCK层基本概念:bio,request,request_queue
  4. 1356. Sort Integers by The Number of 1 Bits 根据数字二进制下 1 的数目排序
  5. php 递归创建目录、递归删除非空目录、迭代创建目录
  6. linux的du使用方法
  7. PaddleHub教程合集
  8. element ui select设置不显示不存在的项_appium—等待时间设置方法
  9. 修复MacBook Touch Bar(触控栏)无法正常工作的方法
  10. loadrunner之java协议脚本编写
  11. regsvr32.exe进程注册dll文件
  12. 定时重启_SpringBoot基于数据库的定时任务实现方法
  13. CSR8670项目实战:BlueSiri轻智能蓝牙音箱
  14. python求小于n的最大素数_小于或等于n的素数
  15. SQL学习笔记6-决胜秋招
  16. OpenStack+Ceph存储空间回收
  17. 镜头camera shot
  18. 微信小程序——云函数三方库request-promise的使用详解
  19. 张无忌放弃了江湖与江山
  20. 游戏盾防御CC攻击的工作原理

热门文章

  1. MATLAB调试caffe,在MATLAB下调试Caffe
  2. linux命令行怎么播放,如何在在 Linux 命令行中观看彩虹猫
  3. mysql join 组合索引_详解MySQL两表关联的连接表创建单列索引还是组合索引最优...
  4. HDFS数据副本的摆放策略
  5. Apache Flink 零基础入门(十五)Flink DataStream编程(如何自定义DataSource)
  6. Python 3.10刚发布,这5点非常值得学习!
  7. 肝!教你用Python抓取某天下楼盘数据
  8. 一口气说出 4种 “附近的人” 实现方式,面试官笑了,嘿嘿
  9. pppoe错误代码 linux,PPPOE常见故障代码及分析
  10. lstm中look_back的大小选择_基于机器学习检测僵尸网络中的域名生成算法