上海计算机学会 2023年9月月赛 乙组T4 组合数(组合数学)

2024-04-13 08:04

本文主要是介绍上海计算机学会 2023年9月月赛 乙组T4 组合数(组合数学),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第四题:T4组合数

标签:组合数学
题意:求组合数 C n m C_n^m Cnm,即从 n n n个不同的数字中取出 m m m个数字的方案数,结果对 1 , 000 , 000 , 007 1,000,000,007 1,000,000,007取模
1 ≤ m ≤ n ≤ 1 0 9 , 1 ≤ m ≤ 1 0 6 1≤m≤n≤10^9,1≤m≤10^6 1mn1091m106
题解:直接通过通项公式 C n m = n ! m ! ( n − m ) ! C_n^m=\frac {n!}{m!(n-m)!} Cnm=m!(nm)!n!,值得注意的是要进行取模,所以得用到逆元 i n v inv inv
费马小定理: a p − 1 ≡ 1 ( m o d p ) a^{p-1}≡1(mod \ p) ap11(mod p),两边同时除以 a a a a p − 2 ≡ i n v ( a ) ( m o d p ) a^{p-2}≡inv(a)(mod\ p) ap2inv(a)(mod p),即 i n v ( a ) = a p − 2 ( m o d p ) inv(a)=a^{p-2}(mod \ p) inv(a)=ap2(mod p),得到 a p − 2 a^{p-2} ap2这部分可以通过快速幂去得到。
代码

#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const ll p = 1e9 + 7;ll fast_power(ll a, ll b) {ll ans = 1;a %= p;while (b) {if (b & 1) ans = (ans * a) % p;a = (a * a) % p;b >>= 1;}return ans;
}ll C(ll a, ll b) {if (b > a) return 0;if (a == b) return 1;ll ans1 = 1, ans2 = 1;for (ll i = 1; i <= b; i++) {ans1 = ans1 * (a - i + 1) % p;ans2 = ans2 * i % p;}return ans1 * fast_power(ans2, p - 2) % p;
}int main() {ll n, m;cin >> n >> m;cout << C(n, m);return 0;
}

这篇关于上海计算机学会 2023年9月月赛 乙组T4 组合数(组合数学)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/899578

相关文章

mysql索引四(组合索引)

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。 因为有事,下面内容全部转自:https://www.cnblogs.com/farmer-cabbage/p/5793589.html 为了形象地对比单列索引和组合索引,为表添加多个字段:    CREATE TABLE mytable( ID INT NOT NULL, use

《计算机英语》Unit 1 Computer Overview 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译(单词+词组,参照课后习题) 4、翻译2道(一道原题,参照作业) SectionA About Computer 关于计算机 algorithm          n.  算法  operate          v.  操作  digital           adj. 数字的  integrated circuit

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线

计算机Java项目|基于SpringBoot的网上摄影工作室

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码  项目编号:L-BS-QBBSSPRINGBOOT

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明,比较异同 RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。 CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但可能增加执行时间,倾向于硬件直接支持复杂功能减轻软件负担。 两者均追求高性能,但RISC

OSG数学基础:坐标系变换

三维实体对象需要经过一系列的坐标变换才能正确、真实地显示在屏幕上。在一个场景中,当读者对场景中的物体进行各种变换及相关操作时,坐标系变换是非常频繁的。坐标系变换通常包括:世界坐标系-物体坐标系变换、物体坐标系-世界坐标系变换和世界坐标系-屏幕坐标系变换(一个二维平面坐标系,即显示器平面,是非常标准的笛卡尔坐标系的第一象限区域)。 世界坐标系-物体坐标系变换 它描述的问题主要是关于物体本身的

OSG数学基础:坐标系统

坐标系是一个精确定位对象位置的框架,所有的图形变换都是基于一定的坐标系进行的。三维坐标系总体上可以分为两大类:左手坐标系和右手坐标系。常用的坐标系:世界坐标系、物体坐标系和摄像机坐标系。 世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用世界坐标系来描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。世界坐标系也被广泛地

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学(Anhui University of Science and Technology),位于淮南市,是安徽省和应急管理部共建高校,安徽省高等教育振兴计划“地方特色高水平大学”建设高校,安徽省高峰学科建设计划特别支持高校,国家“中西部高校基础能力建设工程”支持高校,入选教育部“卓越工程师教育培养计划”实施高校、中国人民解放军后备军官培养选拔基地、全国首批深化创新创业教育改革示范高校、首

关于修改计算机的处理器数和最大内存数的问题

问题描述: 刚开始本来是想让计算机的运行速度运行的快点,于是在网上搜索如何让计算机的运行速度更快,找到了一种关于修改计算机内存数和计算机的处理核数可以让计算机运行的更快。 遇到问题: 当我通过命令msconfig →引导→高级选项→勾选了处理器数和最大内存数,然后重启,结构整个计算机都卡的要死,于是记录下来。网上的答案有时候真的是很不负责任,也有可能是自己技术不到位。 结果:取消处理器和内