扩展欧几里德求逆元模板:
#include<iostream>
#define __int64 long long
using namespace std;
//举例 3x+4y=1 ax+by=1
//得到一组解x0=-1,y0=1 通解为x=-1+4k,y=1-3k
inline __int64 extend_gcd(__int64 a,__int64 b,__int64 &x,__int64 &y)//ax+by=1返回a,b的gcd,同时求的一组满足题目的最小正整数解
{__int64 ans,t;if(b==0){x=1;y=0;return a;}ans=extend_gcd(b,a%b,x,y);t=x;x=y;y=t-(a/b)*y;return ans;
}
//(a/b)%mod=c 逆元为p,(p*b)%mod=1
//(a/b)*(p*b)%mod=c*1%mod=c
// (p*b)%mod=1 等价于 p*b-(p*b)/mod*mod=1其中要求p,b已知 等价于 ax+by=1
//其中x=p(x就是逆元),y=p/mod,a=b,b=b*mod 那么调用extend_gcd(b,b*mod,x,y)即可求(a/b)%mod的逆元等价于a*p%mod
int main()
{__int64 a,b,x,y,c,gcd,mod,p;//ax+by=cwhile(cin>>a>>b>>c){gcd=extend_gcd(a,b,x,y);cout<<x<<"  "<<y<<endl;if(c%gcd){cout<<"无解!"<<endl;continue;}cout<<"x="<<x*c/gcd<<" y="<<y*c/gcd<<endl;}return 0;
}

扩展欧几里德求逆元模板相关推荐

  1. 拓展欧几里得模板/求逆元模板(java)

    拓展欧几里得模板 参考:哈尔滨理工大学ACM培训资料汇编/ACM-ICPC培训资料汇编* 基本原理 :设 a 和 b 不全为 0,则存在整数 x,y 使得 xa yb=gcd(a,b)=c 对于辗转相 ...

  2. 线性求逆元模板_ACM 数论基本模板

    ACM 数论基本模板 1.欧几里得 求最大公约数,最小公倍数 (1)递归的写法:int gcd(int a,int b) {return b?gcd(b,a%b):a;} (2)辗转相除法: int ...

  3. 线性求逆元模板_算法学习笔记(9):逆元

    https://zhuanlan.zhihu.com/p/105467597在数论中,如果 ,我们就说 和 在模 意义下互为乘法逆元,记作 . 逆元有什么用呢?我们常常遇到一些题目要求结果对一个大质数 ...

  4. 线性求逆元模板_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的长方形 ...

  5. 扩展欧几里德一系列算法

    一.欧几里德算法又称辗转相除法,用于计算两个正整  a,b的最大公约数. 定理:gcd(a,b) = gcd(b,a%b) .代码实现如下: #include<stdio.h> #defi ...

  6. 求逆元(线性求逆元)及其扩展欧几里得

    线性求逆元模板: int inv[maxn]; void initInverse(){inv[1] = 1;for(int i = 2; i <= maxn; i++)inv[i] = (p - ...

  7. 51Nod 1256-乘法逆元(扩展欧几里德)

    题目地址:51Nod 1256 题意:给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. ...

  8. 51nod 1118 机器人走方格 解题思路:动态规划 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题

    51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式 ...

  9. POJ 2142-The Balance(扩展欧几里德)

    题目地址:POJ 2142 题意:有两种类型的砝码质量分别为a和b,要求称出质量为d的物品,要求a的数量x和b的数量y的和x+y最小,若有多个x+y的值,取ax+by最小的. 思路:我们应该求ax+b ...

最新文章

  1. LeetCode_每日一题今日份_343.整除拆分
  2. 【ArcGIS遇上Python】Python实现点转栅格(PointToRaster)
  3. [react] 简要描述下你知道的react工作原理是什么?
  4. case when then的用法
  5. 阿里十年DBA经验产品经理:真的不要再有一起删库跑路事件了
  6. win8关闭uefi+linux,UEFI启动是什么?Win8关闭UEFI引导方式的方法
  7. Linux基础-06-vi编辑器
  8. 二级计算机excel以宏保存,excel宏保存 设置宏保存位置的操作方法
  9. java 切图 软件_Java 切图
  10. 算法策略 | MACD跨周期短线交易策略开发(股指+商品双版)
  11. 嵌入式Uboot,通过tftp进行内核镜像的加载及flash写入
  12. 指纹/人脸/gatekeeper学习笔记
  13. 你会使用Excel中的【照相机】吗?
  14. 16款必备 Adobe AIR应用程序推荐
  15. VR全景的拍摄制作上传
  16. 背景图片和img图片实用性差异
  17. 解决高德地图热力图数据导入问题
  18. 苹果usbc音频android,苹果USB-C音频线安卓手机能用么?实测10款手机仅1款不支持...
  19. IMDB评分TOP250部给力电影
  20. Nginx网站服务配置

热门文章

  1. 步进电机的名词概念解析
  2. # Alpha冲刺4
  3. 【CV】小目标检测问题中“小目标”如何定义?其主要技术难点在哪?
  4. 达内python培训资料
  5. Pytorch中, torch.einsum详解。
  6. TIS-100攻略 Segment 1~3 解法与DEBUG彩蛋
  7. outlook express 邮件报错:服务器错误: 0x800CCC90, 错误号: 0x800420CD
  8. LinQ,WCF,ExtJs之”初吻“
  9. c++ 取整之ceil、floor、round、fix用法
  10. 需求精益思想在项目管理中的实战应用