计算系数(acwing,数论)

题目描述:

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

输入格式:

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

输出格式:

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

数据范围:

0≤n,m≤k≤1000,
n+m=k,
0≤a,b≤1e6;

输入样例:

1 1 3 1 2 

输出样例:

3

分析步骤:

  第一:理清思路:

  1. 通过看题目,我们清楚是要我们求解组合数的系数。所以如果我们要求解x^n*y^m的系数,系数就应该是Ck^n * a^n * b^m。那么这个Ck^n应该怎么求呢?这么多数如果我们一个一个硬算的话我们一定很困难和很耗时间的。

  2. 但是我们学过组合数的递推公式就是Cp^j = Cp-1^j-1+Cp-1^j。怎么理解这个公式呢?我们可以想:现在我从一堆苹果里面随便挑出了一个苹果题目要求我们选择j个苹果,那么现在就分为两种情况一种是包含这个我们挑中的苹果,那么我们现在只要从p-1个总数中挑出j-1个苹果就可以了所以就是Cp-1^j-1一种是不包含这个苹果,那么我们要从p-1个苹果中挑出j个苹果。只有这两种情况那么这两种情况加到一起就可以包括了所有的可能。那么只要递推过来就可以知道后面的情况了。

  第二:书写主函数,构建整体框架:

  1. 我们把值全部都输入进去,这里有一个值得注意的地方这个点很细小,就是我们的a,b必须要先求一次模,为什么呢?因为我们的a和b最大都是1e6,如果最后和模相乘一下的话就会是1e10级别的数,那么一定会溢出。所以这里一定要模一下,不然过不去!

  2. 这里进入两层for循环利用好我们的递推公式,我们判断一下如果j是0的情况,就相当于从i个苹果里面选择0个的方案数,很明显一个都不选就是一种方案所以方案数就是1

  3. 最终我们得出来的答案就是res[k][n](Ck^n)个方案。

  4. 我们已经把组合数的系数值算出来了,接下来就以要计算a和b的次方就行了

int main()
{cin>>a>>b>>k>>n>>m;a %= MOD , b %= MOD;for(int i = 0 ; i <= k ; i ++){for(int j = 0 ; j <= i ; j ++){if(!j) res[i][j] = 1;else res[i][j] = (res[i-1][j-1]+res[i-1][j])%MOD;}}int ans = res[k][n];for(int i = 0 ; i < n ; i ++) ans = ans * a % MOD;for(int i = 0 ; i < m ; i ++) ans = ans *b % MOD;cout<<ans;return 0;
}

代码:

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1100 , MOD = 10007;int a,b,k,n,m;
int res[N][N] ;int main()
{cin>>a>>b>>k>>n>>m;a %= MOD , b %= MOD;for(int i = 0 ; i <= k ; i ++){for(int j = 0 ; j <= i ; j ++){if(!j) res[i][j] = 1;else res[i][j] = (res[i-1][j-1]+res[i-1][j])%MOD;}}int ans = res[k][n];for(int i = 0 ; i < n ; i ++) ans = ans * a % MOD;for(int i = 0 ; i < m ; i ++) ans = ans *b % MOD;cout<<ans;return 0;
}

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

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

相关文章

【STL】stack与queue的底层原理及其实现

文章目录 stack的介绍库中stack的使用栈的模拟实现queue的介绍库中queue的使用queue的模拟实现 stack的介绍 &#xff08;图片来自知乎&#xff09; 1.stack是一种容器适配器&#xff0c;模拟了栈的数据结构。数据只能从一端进去&#xff0c;另一端出来&#xff08;先进后出&am…

基于单片机水质检测仪系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机水质检测仪系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机水质检测仪系统仿真设计的主要目标是&#xff0c;通过仿真手段验证基于单片机的水质检测仪系统的设计方…

硬盘容量骤降为0?原因解析与数据恢复秘籍

当我们打开计算机&#xff0c;准备进入日常的工作或娱乐时&#xff0c;突然发现硬盘容量显示为0&#xff0c;这无疑是一个令人头痛的问题。硬盘&#xff0c;作为我们存储重要数据和文件的关键设备&#xff0c;一旦容量显示为0&#xff0c;就意味着我们可能面临数据丢失的风险。…

AbstractQueuedSynchronizer的独占锁和共享锁

AbstractQueuedSynchronizer&#xff08;AQS&#xff09;提供了两种类型的锁&#xff1a;独占锁和共享锁。 独占锁&#xff08;Exclusive Lock&#xff09;&#xff1a; 独占锁模式只允许一个线程同时获取锁。当一个线程获取了独占锁时&#xff0c;其他线程必须等待该线程释放锁…

【前端】eslint 禁用命令

/* eslint-disable */ ESLint 在校验的时候就会跳过后面的代码还可以在注释后加入详细规则&#xff0c;这样就能避开指定的校验规则了 /* eslint-disable no-new */常用&#xff1a; rules: {"comma-dangle": ["error", "never"], //是否允许对…

Arduino开发 esp32cam+opencv人脸识别距离+语音提醒

效果 低于20厘米语音提醒字体变红 QQ录屏20240406131651 Arduino代码 可直接复制使用&#xff08;修改自己的WIFI) #include <esp32cam.h> #include <WebServer.h> #include <WiFi.h> // 设置要连接的WiFi名称和密码 const char* WIFI_SSID "gumou&q…

MYSQL 8.0版本修改用户密码(知道登录密码)和Sqlyog错误码2058一案

今天准备使用sqlyog连接一下我Linux上面的mysql数据库&#xff0c;然后就报如下错误 有一个简单的办法就是修改密码为password就完事!然后我就开始查找如何修改密码! 如果是需要解决Sqlyog错误码2058的话&#xff0c;执行以下命令&#xff0c;但是注意root对应host是不是loca…

Fecify站点斗篷cloak

斗篷cloak站点斗篷模式功能发布&#xff01;全新的应用场景&#xff0c;该模式是针对推广不用GMC&#xff0c;而是通过facebook&#xff0c;或者其他的一些平台/工具推广&#xff0c;这些推广方式的特点是&#xff1a;不需要商品的图片&#xff0c;或者说不会排查商品图片的侵权…

基础语法复习

常用的定义&#xff1a; 读取数据加速&#xff1a; input sys.stdin.readline 设置递归深度&#xff1a; sys.setrecursionlimit(100000) 记忆化搜索&#xff1a; from functools import lru_cache lru_cache(maxsizeNone) 计数器&#xff1a; Counter 类是一个非常有…

P8707 [蓝桥杯 2020 省 AB1] 走方格

原题链接&#xff1a;[蓝桥杯 2020 省 AB1] 走方格 - 洛谷 目录 1.题目描述 2.思路分析 3.代码实现 1.题目描述 2.思路分析 题目大意&#xff1a;现在有个人站在第 1 行第 1 列&#xff0c;要走到第 i 行第 j 列&#xff08;每次只能向右或者向下走&#xff09;&#xff0…

第四百五十回

文章目录 1. 知识回顾2. 使用方法3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将再谈flutter_native_splash包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我…

计算机的发展趋势

本文 我们来说计算机的发展趋势 目前来讲 计算机是朝着 巨型化 微型化 网络化 智能化发展 巨型化 指功能巨型化 是指其高速运算、大存储容量和强功能的巨型计算机。其运算能力一般在每秒百亿次以上、内存容量在几百兆字节以上。 主要用于航空航天、军事、气象、人工智能、生…

业务逻辑之身份认证

实现业务功能的逻辑不严谨导致的漏洞 业务流程分类 用户身份验证 会话管理 角色和权限识别 资源访问 交易和支付 密码重置和安全设置 日志记录和审计 url参数 某些参数可以表示用户权限&#xff08;身份&#xff09; http请求头 用户身份验证信息存在请求头部中的 Authorizatio…

单链表学习

//静态链表&#xff0c;只往后看&#xff0c;找前面必须遍历 //算法题用数组解题更快速 //初始化,头节点为空 //将x插入到头节点 //将x插到结点k的后面 //将下标k的后面的点删掉 #include<algorithm> #include<iostream> #include<cstring> #include<queu…

Leetcode:27.移除元素

题目要求 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

智能单灯控制器 计讯物联TL112

智能单灯控制器集成了先进技术的照明控制设备&#xff0c;它极大地改变了传统照明方式&#xff0c;并使之更加智能化。计讯物联智能单灯控制器TL112广泛应用于道路、景区、园区、隧道等场景智慧路灯杆使用。      智能单灯控制器通过集成最先进的传感器、控制模块和通信技术…

基于vue实现动态table

1、代码 <div style"height: 600px; overflow: scroll;"> <!-- height: 600px; overflow: scroll;作用是超出页面可以滑动 --><div ng-repeat"row in entity.procedureList"><cb-title title"工序{{row.procedireLocation}}&quo…

SpringBoot整合RabbitMQ,三种交换机类型示例

SpringBoot整合RabbitMQ&#xff0c;三种交换机类型示例 1、流程概括 2、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>3、配置RabbitMQ连接 在a…

【C++成长记】C++入门 |auto、范围for、nullptr

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、auto关键字 1、auto简介 2、auto的使用细则 &#xff08;1&#xff09; auto与指针和引用结合起…

多线程入门

文章目录 多线程相关的概念什么是多线程多线程的创建方式继承Thread方式实现Runable方式两种方式比较Thread类中常用方法 多线程相关的概念 并发与并行 并行&#xff1a;在同一时刻&#xff0c;有多个任务在多个CPU上同时执行。并发&#xff1a;在同一时刻&#xff0c;有多个任…