【算法随记】C(n,m)不越界但A(n,m)越界;C(n,1)+C(n,3)+C(n,5)...等二项式定理;“memset”: 找不到标识符

https://codeforces.com/contest/893/problem/E

C(n,m)不越界但A(n,m)越界的解决方案

C(n,m) = A(n,m) / (n-m)!

这题要模1e9+7,但是只有加减乘能模,除法模不了。所以这个A(n,m)要存原值,原值也太大了,爆 long long

要是能不要除法,全是乘法就好了

法一:拆成多个质数相乘

先算A(n,m)里有多少个2 3 5 7,再减去(n-m)!中2 3 5 7的个数,最后把剩下的乘起来

long long C(int n, int m){long long ret=1;unordered_map<int,int> table;for(int x=n;x>m;x--){int tmpx=x;for(int i=2;i<=tmpx;i++){if(tmpx%i==0){int tmpcnt=1;tmpx=tmpx/i;while(tmpx%i==0 && tmpx){tmpcnt++;tmpx/=i;}table[i]+=tmpcnt;}}}for(int x=n-m;x>=1;x--){int tmpx=x;for(int i=2;i<=tmpx;i++){if(tmpx%i==0){int tmpcnt=1;tmpx=tmpx/i;while(tmpx%i==0 && tmpx){tmpcnt++;tmpx/=i;}table[i]-=tmpcnt;}}}for(auto it=table.begin(); it!=table.end();it++){int x=it->first;int cnt=it->second;ret=(ret*quickpower(cnt, x))%MOD;}return ret%MOD;
}

法二:除法转乘法

A / B ( m o d M ) ≡ A ∗ B M − 2 ( m o d M ) A/B \pmod{M} ≡ A*B^{M-2} \pmod {M} A/B(modM)ABM2(modM)

费马小定理:若M是质数,且B、M互质,那么B^(M-1) mod M = 1
M自己就是质数,当然与B互质
A/B mod M
= A/B mod M * 1
= A/B mod M * B^(M-1) mod M
= A*B^(M-2) mod M

理论:逆元

逆元:bx ≡ 1 (mod M) ,称 x 是 a mod M 的逆元
(a / b) mod M = a * x mod M

(a / b) mod M
= (a / b) * 1 mod M
= (a / b) * (b * x) mod M
= a * x mod M

而 x(inv(b)) 的值:x ≡ b^{M-2} (mod M)

因为 b x ≡ 1 ( m o d M ) bx \equiv 1 \pmod M bx1(modM)
所以 b x ≡ b M − 1 ( m o d M ) bx \equiv b^{M-1} \pmod M bxbM1(modM)(根据 费马小定理);
所以 x ≡ b M − 2 ( m o d M ) x \equiv b^{M-2} \pmod M xbM2(modM)

C(n,m)模板

C(n,m) mod M
= n! / m! / (n-m)! mod M
= n! * inv(m!) * inv((n-m)!) mod M

// f 阶乘,inv 逆元long long f[MAXN],inv[MAXN];
long long quickpower(long long a, long long b){...}
void init()
{f[0]=inv[0]=1;for(long long i=1; i<maxn; i++){f[i]=f[i-1]*i%MOD;inv[i]=quickpower(f[i], MOD-2);}
}long long C(long long n, long long m)
{return f[n] * inv[n-m]%MOD * inv[m]%MOD;
}

二项式定理

C ( n , 0 ) + C ( n , 1 ) + C ( n , 2 ) + . . . + C ( n , n ) = 2 n C(n,0)+C(n,1)+C(n,2)+...+C(n,n) = 2^n C(n,0)+C(n,1)+C(n,2)+...+C(n,n)=2n
(1+x)^n,给x赋值为1

C ( n , 1 ) + C ( n , 3 ) + C ( n , 5 ) + . . . = 2 n − 1 C(n,1)+C(n,3)+C(n,5)+... = 2^{n-1} C(n,1)+C(n,3)+C(n,5)+...=2n1
C ( n , 0 ) + C ( n , 2 ) + C ( n , 4 ) + . . . = 2 n − 1 C(n,0)+C(n,2)+C(n,4)+... = 2^{n-1} C(n,0)+C(n,2)+C(n,4)+...=2n1
(1+x)^n,给x赋值为-1

“memset”: 找不到标识符

#include<string.h>

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

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

相关文章

电脑入门:路由器 基本设置操作说明

路由器 基本设置操作说明 首先我们我设置路由器,就需要先登录路由器, 那么怎样登路由器啊? 登录路由器的方法是 在ie的地址栏输入:http://192.168.1.1 输入完成以后直接回车 那么如果你输入正确 这个时候就应该听到有用户名的提示 呵呵 这是怎么回事啊? 不要召集 首…

使用Python脚本添加新的相关节点到arxml文件中的指定位置

使用Python脚本添加新的相关节点到arxml文件中的指定位置 1 背景 随着汽车软件开发的复杂度越来越高,链路越来越长,很多手动配置的工具链所需要的时间就会被拉长,显然这对于项目的开发进度有了一定影响,根据需求自动化生成arxml文件其实很有必要。同时越来越多的测试开始…

在vue3项目中编辑的时候,解决对话框里边的数据和列表中的数据联动了。深复制

//分析原因是从列表中拿到的数据直接复制去修改就涉及到堆里变的内容是一样的&#xff0c;直接复制其实只是把引用地址赋值给变量了&#xff0c;解决方法是 浅复制和深复制。<!-- 审批流程管理 --> <template><div style"float: left; width: 250px;backgr…

Vue2.0 的响应式原理 私

原理&#xff1a; 通过数据劫持 defineProperty 发布订阅者模式&#xff0c;当 vue 实例初始化后 observer 会针对实例中的 data 中的每一个属性进行劫持并通过 defineProperty() 设置值后在 get() 中向发布者添加该属性的订阅者&#xff0c; 使用的Object.defineProperty()…

软件机器人助力行政审批局优化网约车业务流程,推动审批业务数字化转型

随着社会的进步和发展&#xff0c;行政审批业务逐渐趋向于智能化和自动化。近日&#xff0c;某市行政审批局在市场准入窗口引入博为小帮软件机器人大幅度提升了网约车办理业务的效率&#xff0c;创新了原有的业务模式。 软件机器人以其自动化、智能化的特性&#xff0c;优化了网…

Excel:如何实现分组内的升序和降序?

一、POWER 1、构建辅助列D列&#xff0c;在D2单元格输入公式&#xff1a; -POWER(10,COUNTA($A$2:A2)3)C2 2、选中B1:D10&#xff0c;注意不能宣导A列的合并单元格&#xff0c;进行以下操作&#xff1a; 3、删除辅助列即可 二、COUNTA 第一步&#xff0c;D2建立辅助列&#xf…

Maven - 使用maven-release-plugin规范化版本发布

文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin&#xff08;Maven 发布插件&#xff09;是一个用于帮助在Maven项目中执行版…

前端基础---HTML笔记汇总一

HTML定义 HTML超文本标记语言——HyperText Markup Language。 超文本是什么&#xff1f; 链接标记是什么&#xff1f; 标记也叫标签&#xff0c;带尖括号的文本 标签分类 单标签:只有开始标签&#xff0c;没有结束标签(<br>换行 <hr>水平线 <img> 图像标…

完美解决 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

拉取代码时报错&#xff1a; # Mac 报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key …

JavaScript关于函数的小挑战

题目 回到两个体操队&#xff0c;即海豚队和考拉队! 有一个新的体操项目&#xff0c;它的工作方式不同。 每队比赛3次&#xff0c;然后计算3次得分的平均值&#xff08;所以每队有一个平均分&#xff09;。 只有当一个团队的平均分至少是另一个团队的两倍时才会获胜。否则&…

jumpserver堡垒机添加资产配置

目录 jumpserver堡垒机添加资产配置 1、创建jumpserver管理用户&#xff0c;登录jumpserver堡垒机 2、创建普通用户&#xff0c;管理资源服务器 3、创建特权用户&#xff0c;登录资源服务器 4、添加资源 5、资产授权 6、登录jumpserver&#xff0c;创建的jumpserver用户 7、…

MyBatis-Plus 总结

MyBatis-Plus简介 官网&#xff1a;https://baomidou.com/ GitHub&#xff1a;https://github.com/baomidou/mybatis-plus Gitee&#xff1a;https://gitee.com/baomidou/mybatis-plus 简介 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#x…

leetcode做题笔记115. 不同的子序列

给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数。 题目数据保证答案符合 32 位带符号整数范围。 思路一&#xff1a;动态规划 int numDistinct(char * s, char * t){int len1strlen(s),len2strlen(t);uint64_t dp[len11][len21];memset(dp,0,…

摄像头的调用和视频识别

CV_tutorial3 摄像头调用实时播放保存视频 运动目标识别帧差法背景减除法 摄像头调用 创建视频捕捉对象&#xff1a;cv2.VideoCapture() 参数为视频设备的索引号&#xff0c;就一个摄像投的话写0默认&#xff1b; 或者是指定要读取视频的路径。 实时播放 import cv2 import …

SAP_ABAP_FUNCTION_ALV案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、Function ALV 1.1 基于退货采购订单创建&#xff0c;解释 FUNCTION_ALV开发的程序结构与代码模板参考 1.2 程序结构 to…

YOLOv5、YOLOv8改进:BoTNet Transformer

目录 1.简介 2.YOLOv5改进 2.1增加以下yolov5s_botnet.yaml文件 2.2common.py配置 2.3 yolo.py配置修改 1.简介 论文地址 Paper 本文提出的BoTNet是一种简单高效的网络&#xff0c;有效的将SA应用到多种视觉任务&#xff0c;如图像识别、目标检测、实例分割任务。通过将R…

06-基础例程6

基础例程6 01、WIFI实验—WebServer 实验介绍 ​ 连接路由器上网是我们每天都做的事情&#xff0c;日常生活中只需要知道路由器的账号和密码&#xff0c;就可以使用手机或电脑连接到路由器&#xff0c;然后上网。 ​ 连接路由器&#xff0c;将ESP32的IP地址等信息通过shell…

自动化运维:Ansible脚本之playbook剧本

目录 一、理论 1.playbooks 2.YAML 3.使用ansible批量安装apache服务 4.定义、引用变量 5.指定远程主机sudo切换用户 6.when条件判断 7.迭代 8.Templates 模块 9.tags 模块 10.Roles 模块 二、实验 1.使用ansible批量安装apache服务 2.定义、引用变量…

【STM32】学习笔记-江科大

【STM32】学习笔记-江科大 1、STM32F103C8T6的GPIO口输出 2、GPIO口输出 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口可配置为8种输入输出模式引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V输出模式下可控制端口输出高低电平&#…

华为数通方向HCIP-DataCom H12-821题库(单选题:101-120)

第101题 可用于多种路由协议,由 ​​if-match​​​和 ​​apply​​子句组成的路由选择工具是 A、​​route-policy​​ B、​​IP-Prefix​​ C、​​commnityfilter​​ D、​​as-path-filter​​ 答案&#xff1a;A 解析&#xff1a; Route-policy&#xff08;路由策…