【luogu 3811】【模板】乘法逆元
题目背景
这是一道模板题
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入输出格式
输入格式:
一行n,p
输出格式:
n行,第i行表示i在模p意义下的逆元。
输入输出样例
10 13
1 7 9 10 8 11 2 5 3 4
说明
1≤n≤3×106,n<p<20000528
输入保证 pp 为质数。
费马小定理:
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define ll long long 6 using namespace std; 7 int n,p; 8 int fast(ll a,ll b){ 9 ll ans=1; 10 while(b){ 11 if(b&1)ans=(ans*a)%p; 12 a=(a*a)%p; 13 b>>=1; 14 } 15 return ans; 16 } 17 int main(){ 18 scanf("%d%d",&n,&p); 19 for(int i=1;i<=n;i++) 20 printf("%d\n",fast(i,p-2)); 21 return 0; 22 }
扩展欧几里得:
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 void ex_gcd(int a,int b,int &x,int &y){ 7 if(b==0){x=1,y=0;return;} 8 ex_gcd(b,a%b,x,y); 9 int tmp=x;x=y;y=tmp-(a/b)*y; 10 } 11 int main(){ 12 int a,b,x,y; 13 scanf("%d%d",&a,&b); 14 for(int i=1;i<=a;i++){ 15 ex_gcd(i,b,x,y); 16 printf("%d\n",(x+b)%b); 17 } 18 return 0; 19 }
线性计算:
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 int ans[3000010],n,p; 7 int main(){ 8 scanf("%d%d",&n,&p); 9 ans[1]=1;puts("1"); 10 for(int i=2;i<=n;i++){ 11 ans[i]=(long long)(p-p/i)*ans[p%i]%p; 12 printf("%d\n",ans[i]); 13 } 14 return 0; 15 }
转载于:https://www.cnblogs.com/Emine/p/7646786.html
【luogu 3811】【模板】乘法逆元相关推荐
- luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)
整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...
- P5431 【模板】乘法逆元2(小学数学题,毒瘤鱼,卡常之王yyds)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P5431 [模板]乘法逆元2 题目传送门 题目大意: 给定 nnn 个正整数 aia_iai ,求 ...
- luogu P5142 区间方差(线段树、乘法逆元)
luogu P5142 区间方差 本题要求维护模区间方差,很明显是一道数据结构题. 我们化简方差公式: 而平均数等于 可以发现,我们只需要维护序列的区间和和区间平方和,就可以维护平均数和方差. 区间和 ...
- 洛谷——P3811 【模板】乘法逆元
P3811 [模板]乘法逆元 线性求逆元 逆元定义:若$a*x\equiv1 (\bmod {b})$,且$a$与$b$互质,那么我们就能定义: $x$为$a$的逆元,记为$a^{-1}$,所以我们也 ...
- 题解 P3811 【【模板】乘法逆元】
P3811 [模板]乘法逆元 一个刚学数论的萌新,总结了一下这题的大部分做法 //一.费马小定理+快速幂 O(nlogn) 64分 #include<cstdio> using names ...
- 【训练题22:线性求逆元】【模板】乘法逆元 | 洛谷 P3811
[模板]乘法逆元 难度 普及/提高\color{yellow}普及/提高普及/提高 板子题,给出两种方法 题意 给 n,pn,pn,p 求出所有 i∈[1,n]i\in[1,n]i∈[1,n]在模 p ...
- gcd + 扩展欧几里得定理+递推乘法逆元(模板)
gcd: int gcd(int a, int b){ return b==0? a: gcd(b, a%b); } 扩张欧几里得定理: 扩展欧几里德算法是用来在已知a, b求解一组x,y使得ax+b ...
- java乘法逆元与除法取模,逆元
题目描述 题目描述 求关于x的同余方程ax≡1(mod b)的最小正整数解. 输入格式 每组输入数据只有一行,包含两个正整数a, b,用一个空格隔开. 数据规模: 对于40%的数据,2≤b≤1,000 ...
- 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)
虽然作业还没有做完,但是我还是放不下它,对此,我只想说: 今天你对作业爱理不理,明天它就让你补到飞起 DP先放放,我们要雨露均沾 练习上手:乘法逆元 题目 题解 代码实现 曹冲养猪?(互质的中国剩余定 ...
最新文章
- k8s架构组件功能介绍
- pattern in java_Java里的生产者-消费者模型(Producer and Consumer Pattern in Java)
- 关机时无人照管更新正在运行_路辉物流设备:无人化分拣作业驱动物流业降本增效...
- 关于浮点数的问题,我再做一个字体设置的时候总有问题,现在看了这个文章,受到了启发...
- sql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
- can't resolve symbol 'R' ...
- 看了一个大牛的博客,发现了一个很好的文章-初学PHP进
- 设计模式——工厂方法模式
- 大屏制作 | 完成一个美观大屏到底多简单?四步完成
- DotEPUB:一键将网页转换成 EPUB 格式电纸书
- THinkphp5.0开源个人博客系统-优优博客系统 v2.3
- android 左右切换对话框 dialog
- emoji表情如何处理
- gis怎么通过水库划分子流域,基于ArcGIS的生态清洁小流域地块划分及应用
- 爆火上热搜!抖音「变身漫画」特效是如何实现的?
- 【网络仿真】ns-3基础(上)
- 网站内容管理系统--CMS相关漏洞复现
- windows系统dos命令合集
- Win7如何制作Wifi热点
- k-Means的优缺点
热门文章
- f12获取网页文本_怎么获取网页源代码中的文件?
- OCP-Oracle 12c 数据库认证
- vc2010中开始执行不调试灰的_反编译动态调试smali全过程
- python游戏编程快速上手第四版dragon_《Python游戏编程快速上手》——导读
- etsi计算机应用场景,ETSI发布最新版DVB数据广播规范,包括五大应用场景
- 现代操作系统: 第八章 多处理机系统
- linux裸设备文件系统,Linux当中的文件系统
- python入门教程收藏_python入门教程:超详细保你1小时学会Python,快来收藏看看...
- DC-leetcode215数组中的第k大元素
- windows安装Python模块:requests