noip复习——逆元
逆元,即对给定\(a,p\ (a \perp p)\),求\(x\)使得\(ax \equiv 1 \ (\bmod p)\)
逆元可以看做\(a\)在模\(p\)意义下的\(a^{-1}\)。因此,在模\(p\)意义下,可以用乘\(a\)的逆元的方式来代替除以\(a\)操作
求单个数的逆元
费马小定理求逆元
当\(p\)是质数且\(a\perp p\)时 $$a^{p-1}\equiv1\quad (\bmod p) $$
方程两边同时乘\(a^{-1}\),可以发现$$a^{-1}\equiv a ^{p-2}\quad(\bmod p)$$
可以直接快速幂求 传送门
欧拉定理求逆元
欧拉定理可以适用于满足\(a\perp p\)的情况 $$a^{\varphi(p)}\equiv 1\quad (\bmod p) $$
同理可得$$a^{-1}\equiv a^{\varphi(p)-1} \quad (\bmod p) $$
现在的问题变成了,如何求欧拉函数?
1.线性筛\(O(p)\)求
适用于多个模数的情况 传送门
如果是单一模数怎么办呢?有更高效的做法
2.\(O(\sqrt{p})\)做法
\]
其中,\(i\)是\(p\)的所有质因子
#define LL long long
LL get_phi(LL n)
{
LL sum = n;
for (LL i = 1; i * i <= n; ++i)
if (n % i == 0)
{
sum -= sum / i;
while (n % i == 0)
n /= i;
}
if (n > 1)
sum -= sum / n;
return sum;
}
exgcd求逆元
exgcd可以求解方程组\(ax+by=c\)的解,而求\(a\)在模\(p\)下的逆元可以转化为求\(ax+py=1\)的解
求多个数的逆元
线性求1~n的逆元
令\(p=ki+r,k=\lfloor\frac pi \rfloor. r=p \bmod i\)
则有\(ki+r \equiv 0\quad (\bmod p)\),乘\(i^{-1},r^{-1}\)可得\(kr^{-1}+i^{-1}\equiv 0\quad (\bmod p)\)
所以\(i^{-1}=-r^{-1}\lfloor\frac pi \rfloor\)
显然可以递推求解
线性求n个数的逆元
先预处理出这n个数的前缀积\(sum_i\),然后求出这n个数积的逆元\(suminv_n\),那么\(suminv_{i-1}=suminv_i*a_i\),\(inv_i=suminv_{i}*sum_{i-1}\)。
noip复习——逆元的更多相关文章
- NOIP复习篇
NOIP复习篇---枚举 --------------------------------------------------------------------------------------- ...
- NOIP复习之1 数学数论
noip一轮复习真的要开始啦!!! 大概顺序是这样的 1.数学 2.搜索贪心 3.数据结构 4.图论 5.dp 6.其他 数学 1.数论 数论被称为数学皇冠上的明珠,他的重要性主要在于它是其他学习的祖 ...
- [Noip复习知识点][个人向]Zackzh
只是列列一些要复习的,努力复习吧,有种noip退役的赶脚. 一.模拟 (这你也不会?退役吧) 二.DP 1.基础dp 2.区间dp 3.状压dp 4.树形dp 6.概率(期望)dp 7.环形dp 8. ...
- 冲刺NOIP复习,算法知识点总结
前言 离NOIP还有一个星期,匆忙的把整理的算法补充完善,看着当时的整理觉得那时还年少.第二页贴了几张从贴吧里找来的图片,看着就很热血的.当年来学这个竞赛就是为了兴趣,感受计算机之美的. ...
- NOIP复习赛20161117
题目链接:http://files.cnblogs.com/files/candy99/%E9%A2%98%E7%9B%AE1117.pdf A n个等比数列求和公式(都感觉数列忘光了) %1e9+7 ...
- 【NOIP复习】最短路总结
[模板] /*堆优化Dijkstra*/ void dijkstra() { priority_queue<pair<ll,int>,vector<pair<ll,int ...
- noip复习模板
我只会这么多 tarjan:codevs 1332 void tarjan(int u) { dfn[u]=low[u]=Time++; s.push(u); for(int i=head[u];~i ...
- [NOIP复习]第三章:动态规划
一.背包问题 最基础的一类动规问题.相似之处在于给n个物品或无穷多物品或不同种类的物品,每种物品仅仅有一个或若干个,给一个背包装入这些物品,要求在不超出背包容量的范围内,使得获得的价值或占用体积尽可能 ...
- noip复习之拓扑排序
之前很多很多紫书上的东西我都忘了…… 抄题解的后果…… 做了一下裸题 https://vjudge.net/problem/UVA-10305 拓扑排序还可以来判环 #include<bits/ ...
随机推荐
- Java流程控制(Scanner)
3.1用户交互Scanner 可以通过Scanner类来获取用户的输入: 语法: Scanner s = new Scanner(System.in); 通过Scanner类的next()与nextL ...
- 一周一个中间件-ES搜索引擎
---toc: truetitle: 一周一个中间件-ES搜索引擎date: 2019-09-19 18:43:36tags: - 中间件 - 搜索引擎--- ## 前言 > 在众多搜索引擎中, ...
- JavaFX布局神器-SceneBuilder
JavaFX允许开发使用FXML来设计和布局界面,跟Qt和Android的布局有点类似,JavaFX用SceneBuilder来设计和布局界面. SceneBuilder最新的下载地址:https:/ ...
- 常用的 Systemctl 命令
常用的 Systemctl 命令 设置开机启动 systemctl enable apache.service 立即启动一个服务 $ sudo systemctl start apache.servi ...
- redis配置密码
一. 更改配置文件 找到requirepass这行, [soft@node5 redis-3.0.6]$ grep 'requirepass' redis.conf#requirepass fooba ...
- Android:沉浸式状态栏(二)集成
在Activity的onCreate()方法中添加代码 //设置状态栏透明 StatusBarUtil.setTranslucentStatus(this); //设置透明状态栏的paddingTop ...
- Glide:重新加载失败的问题
Glide在url不变,内容改变的时候重新加载还会显示第一张图片, 解决方法: https://blog.csdn.net/u013420865/article/details/53197788?de ...
- Android存储--SharedPreferences
简介 在Android中,主要有以下几种存储方式: SharedPreferences,在键值对中存储私有原始数据. 内部存储,在设备内存中存储私有数据. 官方示例: String FILENAME ...
- 阿里云ecs轻量级服务器node镜像部署
这个是自带安装pm2,nginx,node,mongodb的环境的,目录在控制台有给出, server端的配置按照开发手册去操作即可. 而静态的页面.需要修改nginx的配置文件,找到nginx的ng ...
- 谁来教我渗透测试——黑客应该掌握的Windows基础
今天我们看看作为一个黑客对于Windows应该掌握哪些基础知识,主要内容包含以下四个方面: 系统目录.服务.端口和注册表: 黑客常用的DOS命令及批处理文件的编写: 黑客常用的快捷键,以及如何优化系统 ...