O(N) 求 1~N 逆元 模板及证明
Solution
inv[i] = (mo-mo\ /\ i ) * inv[mo\ \%\ i]\ \%\ mo
证明:
设 t=mo / it=mo\ /\ i ,k=mo % ik=mo\ \%\ i ,
则有:
t*i+k≡0\ (mod\ mo)
有:
-t*i≡k\ (mod\ mo)
两边同时除以 i∗ki*k 得到:
-t * inv[k]≡inv[i]\ (mod\ mo)
即:
inv[i]≡-mo\ /\ i*inv[mo\ \%\ i]\ (mod\ mo)
即:
inv[i]≡(mo-mo\ /\ i)*inv[mo\ \%\ i]\ \%\ mo
证毕。
- 适用于模数 momo 是质数的情况,能够 O(N)O(N) 时间求出 1−N1-N 对模 momo 的逆元。
Code
inv[0]=inv[1]=1;
for (int i=2;i<=n;i++) inv[i]=(long long)(mo-mo/i)*inv[mo%i]%mo;
O(N) 求 1~N 逆元 模板及证明相关推荐
- 扩展欧几里德求逆元模板
扩展欧几里德求逆元模板: #include<iostream> #define __int64 long long using namespace std; //举例 3x+4y=1 ax ...
- 线性求逆元模板_ZXBlog/ACM模板(C++).md at bb6f2522054d5370df79222461293721e8edede2 · cw1027/ZXBlog · GitHub...
ACM模板(C++) 1.大数 加法,乘法模板 //题目链接 : http://poj.org/problem?id=2506 //题目大意 : 就是问你用2*1,1*2,2*2的砖拼成2*n的长方形 ...
- Wannafly挑战赛17 - 求值2 (逆元 + 杨辉三角公式)
题目链接 题目描述 Ans = 0; For(int i = 1; i <= n; i++) For(int v = 0; v <= n; v++) Ans = (Ans + C(i, v ...
- (组合数求模=乘法逆元+快速幂) Problem Makes Problem
题目: As I am fond of making easier problems, I discovered a problem. Actually, the problem is 'how ca ...
- BM求线性递推模板(杜教版)
BM求线性递推模板(杜教版) BM求线性递推是最近了解到的一个黑科技 如果一个数列.其能够通过线性递推而来 例如使用矩阵快速幂优化的 DP 大概都可以丢进去 则使用 BM 即可得到任意 N 项的数列元 ...
- 辗转相除法求模的逆元
最近研究RSA算法,发现在这个算法里,实现过程中的核心就是求出密钥D,求密钥的公式: E*D ≡ 1 mod r ,现在已知了E和r,求E即是一个求模的逆元问题. 注:≡是数论中表示同余的符号.公式中 ...
- 线性求逆元模板_ACM 数论基本模板
ACM 数论基本模板 1.欧几里得 求最大公约数,最小公倍数 (1)递归的写法:int gcd(int a,int b) {return b?gcd(b,a%b):a;} (2)辗转相除法: int ...
- 拓展欧几里得模板/求逆元模板(java)
拓展欧几里得模板 参考:哈尔滨理工大学ACM培训资料汇编/ACM-ICPC培训资料汇编* 基本原理 :设 a 和 b 不全为 0,则存在整数 x,y 使得 xa yb=gcd(a,b)=c 对于辗转相 ...
- 线性求逆元模板_算法学习笔记(9):逆元
https://zhuanlan.zhihu.com/p/105467597在数论中,如果 ,我们就说 和 在模 意义下互为乘法逆元,记作 . 逆元有什么用呢?我们常常遇到一些题目要求结果对一个大质数 ...
最新文章
- 设置grep高亮显示匹配项
- 告别 CNN?一张图等于 16x16 个字,计算机视觉也用上 Transformer 了
- 实现无锁的栈与队列(1)
- 【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
- 【电商日志项目之七】项目调优
- Dubbo 需求、架构、使用Demo
- 又是一年中秋节,好想举杯邀明月
- Linux 中/etc/profile、~/.bash_profile 环境变量配置以及区别
- Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程
- SQL Server 之 在与SQLServer建立连接时出现与网络相关的或特定于实例的错误
- 看完就懂webpack打包原理
- 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II
- java mm_Java网络编程-你是GG还是MM?
- python数据分析-如何在业余时学数据分析?
- datanode启动后闪退_网友吐槽12306 App:不同意获取个人信息就会“闪退”
- Leetcode 1235. 规划兼职工作(DAY 73) ---- 动态规划学习期(上午去上高数课了 课下老师说上次旷课不扣平时分嘻嘻)
- 64位系统装32位mysql有问题吗_32位系统部署到64位下常见问题及解决
- SSH Remote forwarding的示例
- 前端javascript总结笔记(一)--js的三座大山
- android 铃声播放器,Muziko - 想截取音乐片段当铃声?这款漂亮的播放器能帮你 - Android 应用 - 【最美应用】...
热门文章
- 编程方法学25:设计实用社交网络
- 正则化与L0、L1、L2范数略解
- 大数问题(一个特别大的数需要用数组或字符串来表示)
- Linux内存Mem和Swap那点事,Linux内存 mem 和 swap
- 在caffe上fine-tuning网络
- 【笔记】An explainable deep machine vision framework for plant stress phenotyping
- [NTU-Machine-learning-note]1 Introduction(4)
- ustc小道消息20220106
- 深入探讨!Batch 大小对训练的影响
- 吴恩达《优化深度神经网络》精炼笔记(1)-- 深度学习的实用层面