【NOIP提高组】计算系数
【NOIP提高组】计算系数
- C语言实现
- C++实现
- Java实现
- Python实现
| 💐The Begin💐点点关注,收藏不迷路💐 |
给定一个多项式 (ax + by)^k ,请求出多项式展开后 x^n y^m 项的系数。
输入
共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。
输出
输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取 模后的结果。
样例输入
1 1 3 1 2
样例输出
3
提示
【数据范围】 对于 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。
C语言实现
#include <stdio.h>
#include <stdlib.h>// 定义常量
#define N 1010
#define MOD 10007// 二维数组用于存储组合数
int c[N][N];// 输入参数
int a, b, k, n, m;// 快速幂函数,用于计算a的b次幂对MOD取模的结果
int qmi(int a, int b) {a %= MOD;int res = 1;while (b) {if (b & 1) {res = res * a % MOD;}b >>= 1;a = a * a % MOD;}return res;
}int main() {// 读取输入参数scanf("%d %d %d %d %d", &a, &b, &k, &n, &m);// 预处理组合数for (int i = 0; i <= k; i++) {for (int j = 0; j <= i; j++) {if (j == 0) {c[i][j] = 1;} else {c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD;}}}// 根据二项式定理计算并输出结果int coefficient = c[k][n] * qmi(a, n) % MOD * qmi(b, m) % MOD;printf("%d\n", coefficient);return 0;
}
C++实现
#include <iostream>
#include <algorithm>// 定义常量
const int N = 1010;
const int MOD = 10007;// 二维数组用于存储组合数
int c[N][N];// 输入参数
int a, b, k, n, m;// 快速幂函数,用于计算a的b次幂对MOD取模的结果
int qmi(int a, int b) {a %= MOD;int res = 1;while (b) {if (b & 1) {res = res * a % MOD;}b >>= 1;a = a * a % MOD;}return res;
}int main() {// 读取输入参数std::cin >> a >> b >> k >> n >> m;// 预处理组合数for (int i = 0; i <= k; i++) {for (int j = 0; j <= i; j++) {if (j == 0) {c[i][j] = 1;} else {c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD;}}}// 根据二项式定理计算并输出结果int coefficient = c[k][n] * qmi(a, n) % MOD * qmi(b, m) % MOD;std::cout << coefficient << std::endl;return 0;
}
Java实现
import java.util.Scanner;public class Main {// 定义常量static final int N = 1010;static final int MOD = 10007;// 二维数组用于存储组合数static int[][] c = new int[N][N];// 输入参数static int a, b, k, n, m;// 快速幂函数,用于计算a的b次幂对MOD取模的结果static int qmi(int a, int b) {a %= MOD;int res = 1;while (b!= 0) {if ((b & 1)!= 0) {res = res * a % MOD;}b >>= 1;a = a * a % MOD;}return res;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入参数a = scanner.nextInt();b = scanner.nextInt();k = scanner.nextInt();n = scanner.nextInt();m = scanner.nextInt();// 预处理组合数for (int i = 0; i <= k; i++) {for (int j = 0; j <= i; j++) {if (j == 0) {c[i][j] = 1;} else {c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD;}}}// 根据二项式定理计算并输出结果int coefficient = c[k][n] * qmi(a, n) % MOD * qmi(b, m) % MOD;System.out.println(coefficient);}
}
Python实现
# 定义常量
N = 1010
MOD = 10007# 输入参数
a, b, k, n, m = map(int, input().split())# 二维列表用于存储组合数(初始化为全0)
c = [[0] * (N) for _ in range(N)]# 快速幂函数,用于计算a的b次幂对MOD取模的结果
def qmi(a, b):a %= MODres = 1while b:if b & 1:res = res * a % MODb >>= 1a = a * a % MODreturn res# 预处理组合数
for i in range(k + 1):for j in range(i + 1):if j == 0:c[i][j] = 1else:c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD# 根据二项式定理计算并输出结果
coefficient = c[k][n] * qmi(a, n) % MOD * qmi(b, m) % MOD
print(coefficient)

| 💐The End💐点点关注,收藏不迷路💐 |
相关文章:
【NOIP提高组】计算系数
【NOIP提高组】计算系数 C语言实现C实现Java实现Python实现 💐The Begin💐点点关注,收藏不迷路💐 给定一个多项式 (ax by)^k ,请求出多项式展开后 x^n y^m 项的系数。 输入 共一行,包含 5 个整数&#x…...
IDEA部署AI代写插件
前言 Hello大家好,当下是AI盛行的时代,好多好多东西在AI大模型的趋势下都变得非常的简单。 比如之前想画一幅风景画得先去采风,然后写实什么的,现在你只需描述出你想要的效果AI就能够根据你的描述在几分钟之内画出一幅你想要的风景…...
【阅读记录-章节1】Build a Large Language Model (From Scratch)
目录 1. Understanding large language models1.1 What is an LLM?补充介绍人工智能、机器学习和深度学习的关系机器学习 vs 深度学习传统机器学习 vs 深度学习(以垃圾邮件分类为例) 1.2 Applications of LLMs1.3 Stages of building and using LLMs1.4…...
微服务day08
Elasticsearch 需要安装elasticsearch和Kibana,应为Kibana中有一套控制台可以方便的进行操作。 安装elasticsearch 使用docker命令安装: docker run -d \ --name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ //设置他的运行内存空间&#x…...
JAVA接入WebScoket行情接口
Java脚好用的库很多,开发效率一点不输Python。如果是日内策略,需要更实时的行情数据,不然策略滑点太大,容易跑偏结果。 之前爬行情网站提供的level1行情接口,实测平均更新延迟达到了6秒,超过10只股票并发请…...
使用Axios函数库进行网络请求的使用指南
目录 前言1. 什么是Axios2. Axios的引入方式2.1 通过CDN直接引入2.2 在模块化项目中引入 3. 使用Axios发送请求3.1 GET请求3.2 POST请求 4. Axios请求方式别名5. 使用Axios创建实例5.1 创建Axios实例5.2 使用实例发送请求 6. 使用async/await简化异步请求6.1 获取所有文章数据6…...
Vue2+ElementUI:用计算属性实现搜索框功能
前言: 本文代码使用vue2element UI。 输入框搜索的功能,可以在前端通过计算属性过滤实现,也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤,后附完整代码,代码中提供的是死数据,可…...
抖音热门素材去哪找?优质抖音视频素材网站推荐!
是不是和我一样,刷抖音刷到停不下来?越来越多的朋友希望在抖音上创作出爆款视频,但苦于没有好素材。今天就来推荐几个超级实用的抖音视频素材网站,让你的视频内容立刻变得高大上!这篇满是干货,直接上重点&a…...
spring-cache concurrentHashMap 自定义过期时间
1.自定义实现缓存构建工厂 import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap;import lombok.Getter; import lombok.Setter; import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.…...
解析传统及深度学习目标检测方法的原理与具体应用之道
深度学习目标检测算法 常用的深度学习的目标检测算法及其原理和具体应用方法: R-CNN(Region-based Convolutional Neural Networks)系列1: 原理: 候选区域生成:R-CNN 首先使用传统的方法(如 Se…...
shell数组
文章目录 🍊自我介绍🍊shell数组概述🍊Shell数组使用方法数组的定义直接定义单元素定义 元素的获取获取单个元素获取全部元素 获取数组长度获取整个数组长度获取单个元素的长度 操作数组增加删除 关联数组 🍊 你的点赞评论就是对博…...
高斯混合模型回归(Gaussian Mixture Model Regression,GMM回归)
高斯混合模型(GMM)是一种概率模型,它假设数据是由多个高斯分布的混合组成的。在高斯混合回归中,聚类与回归被结合成一个联合模型: 聚类部分 — 使用高斯混合模型进行聚类,识别数据的不同簇。回归部分 — 对…...
【3D Slicer】的小白入门使用指南八
3D Slicer DMRI(Diffusion MRI)-扩散磁共振认识和使用 0、简介 大脑解剖 ● 白质约占大脑的 45% ● 有髓神经纤维(大约10微米轴突直径) 白质探索 朱尔斯约瑟夫德杰林(Jules Joseph Dejerine,《神经中心解剖学》(巴黎,1890-1901):基于髓磷脂染色标本的神经解剖图谱)…...
【流量分析】常见webshell流量分析
免责声明:本文仅作分享! 对于常见的webshell工具,就要知攻善防;后门脚本的执行导致webshell的连接,对于默认的脚本要了解,才能更清晰,更方便应对。 (这里仅针对部分后门代码进行流量…...
基于树莓派的边缘端 AI 目标检测、目标跟踪、姿态估计 视频分析推理 加速方案:Hailo with ultralytics YOLOv8 YOLOv11
文件大纲 加速原理硬件安装软件安装基本设置系统升级docker 方案Demo 测试目标检测姿态估计视频分析参考文献前序树莓派文章hailo加速原理 Hailo 发布的 Raspberry Pi AI kit 加速原理,有几篇文章介绍的不错 https://ubuntu.com/blog/hackers-guide-to-the-raspberry-pi-ai-ki…...
Java在算法竞赛中的常用方法
在算法竞赛中,Java以其强大的标准库和高效的性能成为了众多参赛者的首选语言。本文将详细介绍Java在算法竞赛中的常用集合、字符串处理、进制转换、大数处理以及StringBuilder的使用技巧,帮助你在竞赛中更加得心应手。 常用集合 Java的集合框架提供了多…...
Vulnhub靶场案例渗透[10]- Momentum2
文章目录 一、靶场搭建1. 靶场描述2. 下载靶机环境3. 靶场搭建 二、渗透靶场1. 确定靶机IP2. 探测靶场开放端口及对应服务3. 扫描网络目录结构4. 代码审计5. 反弹shell6. 提权 一、靶场搭建 1. 靶场描述 - Difficulty : medium - Keywords : curl, bash, code reviewThis wor…...
Spark RDD中常用聚合算子源码层面的对比分析
在 Spark RDD 中,groupByKey、reduceByKey、foldByKey 和 aggregateByKey 是常用的聚合算子,适用于按键进行数据分组和聚合。它们的实现方式各不相同,涉及底层调用的函数也有区别。以下是对这些算子在源码层面的分析,以及每个算子…...
计算机网络 (6)物理层的基本概念
前言 计算机网络物理层是OSI模型(开放式系统互联模型)中的第一层,也是七层中的最底层,它涉及到计算机网络中数据的物理传输。 一、物理层的主要任务和功能 物理层的主要任务是处理物理传输介质上的原始比特流,确保数据…...
快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)
### 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux) --- Docker 是一款开源容器化平台,广泛应用于开发、测试和部署。本文将为您提供分步骤的 Docker 安装教程,涵盖 Windows、macOS 和 Linux 系统。 …...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
