【AcWing】蓝桥杯集训每日一题Day28|组合计数|二项式定理|杨辉三角|211.计算系数(C++)

211.计算系数
211. 计算系数 - AcWing题库
难度:简单
时/空限制:1s / 64MB
总通过数:3703
总尝试数:7790
来源:

《算法竞赛进阶指南》NOIP2011提高组
算法标签

二项式定理组合计数

题目内容

给定一个多项式  ( a x + b y ) k (ax+by)^k (ax+by)k,请求出多项式展开后  x n y m x^ny^m xnym 项的系数。

输入格式

共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。

输出格式

输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。

数据范围

0≤n,m≤k≤1000,
n+m=k,
0≤a,b≤10^6

输入样例:
1 1 3 1 2 
输出样例:
3
题目解析

由于是齐次多项式,所以n+m一定等于k
系数可能很大,要模上10007

a和b是在100万以内
k在1000以内

多项式展开可以用二项式定理

( a + b ) n = ∑ r = 0 n C n r a n − r b r (a + b)^{n}=\sum_{r=0}^nC_{n}^ra^{n-r}b^r (a+b)n=r=0nCnranrbr

证明

( a x + b y ) n = ∑ k = 0 n C n k ( a x ) k ( b y ) n − k (ax+by)^n=\sum_{k=0}^nC_{n}^k(ax)^k(by)^{n-k} (ax+by)n=k=0nCnk(ax)k(by)nk
一共是n个ax+by相乘,每一项里面不是取x这一项就是取y这一项
x的系数如果是k的话,说明有其中的k组取的是x这一项,剩下的n-k组取的是y这一项
总共有n组,从中挑出来k组取x这一项,所以一共有 C n k C_{n}^k Cnk种取法

可以发现其中的 x n y m x^ny^m xnym这一项,对应的系数就是 C k n a n b m C_{k}^na^nb^m Cknanbm

如何求组合数,看数据范围
k只有1000
可以用递推的方式来求

杨辉三角

C a b = C a − 1 b − 1 + C a − 1 b C_{a}^b=C_{a-1}^{b-1}+C_{a-1}^b Cab=Ca1b1+Ca1b

证明

从a个数中,选择b个数
可以将所有选法分成两大类
比如挑第一个元素,所有包含第一个元素的方法是一类,所有不包含第一个元素的方法是另一类

如果包含第一个元素的话,就是要从剩下的a-1个元素中选b-1个元素
如果不包含第一个元素的话,就是从剩余的a-1个元素中选b个元素

因为n和m都在1000以内
所以不需要用快速幂

代码
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1010, MOD = 10007;//定义一个组合数递推数组
int C[N][N];int main()
{int a, b, k, n, m;cin >> a >> b >> k >> n >> m;a %= MOD, b %= MOD; //取模,防止爆//先递推求一下组合数,有模板885题for (int i = 0; i <= k; i ++)for (int j = 0; j <= i; j ++)//如果上面的数是0,方案数是1if (!j) C[i][j] = 1;else C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % MOD;int res = C[k][n];//接下来乘n个a和m个bfor (int i = 0; i < n; i ++) res = res * a % MOD;for (int i = 0; i < m; i ++) res = res * b % MOD;cout << res << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eigen库从入门到放弃(1. VSCode配置及Eigen下载和安装)

最近在做后处理的事情。每次看到Python那么酷炫的切片、矩阵乘法、广播&#xff0c;再看看C&#xff0c;我就陷入无尽痛苦。为什么Numpy没有C版本&#xff0c;为什么后处理都是手撸&#xff0c;Eigen库有很多方法可以平替Numpy&#xff0c;但是我不是很了解&#xff0c;都是现查…

久吾高科技股份有限将莅临2024第13届生物发酵展

参展企业介绍 江苏久吾高科技股份有限公司成立于1997年&#xff0c;是一家专注从事新材料研发与整体解决方案的高科技企业。2017年3月在深交所A股创业板上市。公司是首批认定的guojiaji高新技术企业、国家专精特新“小巨人”企业、国家制造业单项、中国膜行业陶瓷膜领域龙头企…

使用vite从头搭建一个vue3项目(三)vite.config.js配置

目录 一、声明环境变量配置文件二、vite.config.js基础配置1、defineConfig()、loadEnv()2、plugins配置项3、server配置项4、resolve配置项5、css配置项6、build配置项 三、vite.config.js配置完整代码 VITE版本&#xff1a;v5.2.8 一、声明环境变量配置文件 在根目录下新建…

pta L1-045 宇宙无敌大招呼

L1-045 宇宙无敌大招呼 分数 5 全屏浏览 切换布局 作者 陈越 单位 浙江大学 据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”&#xff0c;跟这个世界打个招呼。作为天梯赛中的程序员&#xff0c;你写的程序得高级一点&#xff0c;要能跟任意指定的星球…

Qt 系统相关

这里写目录标题 Qt 事件事件介绍事件的处理按键事件单个按键组合按键 ⿏标事件⿏标单击事件⿏标释放事件⿏标双击事件⿏标移动事件滚轮事件 定时器QTimerEvent 类QTimer 类获取系统⽇期及时间 事件分发器概述事件分发器⼯作原理 事件过滤器 Qt ⽂件Qt ⽂件概述输⼊输出设备类⽂…

GPT国内怎么用?4月最新版本来了

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

HarmonyOS开发实例:【任务延时调度】

介绍 本示例使用[ohos.WorkSchedulerExtensionAbility] 、[ohos.net.http]、[ohos.notification] 、[ohos.bundle]、[ohos.fileio] 等接口&#xff0c;实现了设置后台任务、下载更新包 、保存更新包、发送通知 、安装更新包实现升级的功能。 效果预览 使用说明 安装本应用之…

数字乡村探索:引领农村未来发展新方向——科技创新赋能乡村现代化与农民生活品质提升之旅

目录 一、数字乡村的内涵与特点 二、数字乡村的探索进展 三、数字乡村面临的挑战与机遇 四、数字乡村的未来发展方向与路径 五、数字乡村助力农村产业升级 六、数字乡村促进城乡融合发展 七、数字乡村激发农民创新创业活力 八、数字乡村提升农民获得感和幸福感 九、展…

Postman还能做Mock?又学了一招!

1、什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 2、Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求 依赖的接口还未开发完成…

批量压缩文件并设置独立解压密码

步骤 下面是一个使用批处理脚本来压缩每个文件的基本脚本。此脚本假设所有文件都在同一个目录中&#xff0c;并且你希望每个文件使用不同的密码进行压缩。 1. 创建一个批处理脚本 你可以使用文本编辑器&#xff08;如Notepad或者Windows自带的记事本&#xff09;来创建一个批…

Scala 02——Scala OOP

文章目录 Scala 02——Scala OOP前序类1. 类的基本结构2. 普通类和数据类的区别 继承1. extends2. override 抽象类抽象类的特点 单例对象1. 定义2. 场景3. 方法3.1 方法定义3.2 方法调用 特质1. 抽象类和特质的区别2. 强制混入语法3. 静态混入和动态混入 内部类Java和Scala内部…

springCloud-Feign 拦截器使用,传递header中的值

场景&#xff1a;服务A 调用 服务B 1 编写拦载器类 import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; i…

【ZZULIOJ】1068: 二进制数(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 将一个二进制数&#xff0c;转换为对应的十进制数。 输入 输入一个只含有’0’和’1’的字符串&#xff0c;以回车结束&#xff0c;表示一个二进制数。该二进制数无符号位&#xff0c;长度不…

【C语言】贪吃蛇项目(1) - 部分Win32 API详解 及 贪吃蛇项目思路

文章目录 一、贪吃蛇项目需要实现的基本功能二、Win32 API介绍2.1 控制台2.2 部分控制台命令及调用函数mode 和 title 命令COORD 命令GetStdHandle&#xff08;获取数据&#xff09;GetConsoleCursorInfo&#xff08;获取光标数据&#xff09;SetConsoleCursorInfo &#xff08…

蓝桥杯(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

python入门指南

Python是一种流行的编程语言&#xff0c;易于学习且功能强大。 安装Python&#xff1a; 访问Python官方网站&#xff08;https://www.python.org/&#xff09;并下载最新版本的Python。遵循安装向导完成安装过程。注意&#xff1a;在安装过程中&#xff0c;请确保选中“Add Pyt…

PhotoShop2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe Photoshop是一款由Adobe Systems开发的图像编辑软件。它被广泛用于图像处理和数字艺术创作&#xff0c;是设计师、摄影师和艺术家们的首选工具之一。 主要功能&#xff1a; 图像编辑&#xff1a; Photoshop提供了丰富的编辑…

2024年最好用的图纸文件安全加密软件,陕西安秉信息

企业的办公环境不一样会让每一个企业对数据文件安全的需求也会不一样。但是最根的需求是一样的–都是要保护企业的核心资料不被外泄。每一个企业都是要过一定的安全举措来防止企业数据的可能通过某些因素造成数据泄露给公司造成不可挽回的损失。所以现在很多企业单位都需要采取…

激光共聚焦显微镜测粗糙度,解读表面粗糙度的科技利器

激光共聚焦显微镜&#xff08;Laser Scanning Confocal Microscope&#xff0c;简称LSCM&#xff09;是一种光学显微镜&#xff0c;通过激光束的聚焦和散射技术&#xff0c;能够实现高分辨率的三维图像采集和表面测量。其在科学研究、工程领域等领域有着广泛的应用&#xff0c;…

【环境搭建】(五)Ubuntu22.04安装cuda_11.8.0+cudnn_8.6.0

一个愿意伫立在巨人肩膀上的农民...... 设备配置&#xff1a; 一、安装GCC 安装cuda之前&#xff0c;首先应该安装GCC&#xff0c;安装cuda需要用到GCC&#xff0c;否则报错。可以先使用下方指令在终端查看是否已经安装GCC。 gcc --version 如果终端打印如下则说明已经安装…