当前位置: 首页 > news >正文

洛谷 P1082:[NOIP 2012 提高组] 同余方程 ← 求逆元

【题目来源】
https://www.luogu.com.cn/problem/P1082

【题目描述】
求关于 x 的同余方程 ax≡1(mod b) 的
最小正整数解

【输入格式】
一行,包含两个整数 a,b,用一个空格隔开。

【输出格式】
一个整数 x0,即最小正整数解。输入数据保证一定有解。

【输入样例】
3 10

【输出样例】
7

【算法分析:扩展欧几里得算法与模逆元
● 理论基础 → 裴蜀定理指出:若整数 a 和 b 互质(即 gcd(a,b)=1),则存在整数 x 和 y,使得 ax+by=1。此时,x 即为 a 模 b 的乘法逆元,即满足 ax≡1(mod b)。
● 求解步骤
(1)验证互质性:计算 gcd(a,b),若结果不为 1,则逆元不存在。
(2)扩展欧几里得算法:解方程 ax+by=1,得到的 x 即为逆元(需调整为正数)。
● 调整结果:若 x 为负数,通过
(x mod T + T) mod T 调整为最小正整数解,其中 T=b/gcd(a,b) 为解的周期。

【算法代码】
 注意:
此算法
代码,适用于 a,b≤10^6 时的情形。详见:https://blog.csdn.net/hnjzsyjyj/article/details/147805062

#include <bits/stdc++.h>
using namespace std;int exgcd(int a,int b,int &x,int &y) {if(b==0) {x=1,y=0;return a;}int d=exgcd(b,a%b,y,x);y-=a/b*x;return d;
}int inv(int a,int b) {int x,y;exgcd(a,b,x,y);return (x%b+b)%b; //Ensure inverse is positive.
}int main() {int a,b;cin>>a>>b;cout<<inv(a,b)<<endl;return 0;
}/*
in:
3 10out:
7
*/






【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/147673627
https://blog.csdn.net/hnjzsyjyj/article/details/147805062
https://blog.csdn.net/hnjzsyjyj/article/details/147804004
https://blog.csdn.net/hnjzsyjyj/article/details/147778571


 

http://www.xdnf.cn/news/412165.html

相关文章:

  • 代码随想录训练营第二十二天| 101.对称二叉树 100.相同的树
  • 综合实验二之grub2密文加密
  • (leetcode) 力扣100 10.和为K的子数组(前缀和+哈希)
  • 【Bootstrap V4系列】学习入门教程之 组件-模态框(Modal)
  • css 点击后改变样式
  • Megatron系列——张量并行
  • 我们来学mysql -- 安装8.4版本
  • 在CentOS 7上仅安装部署MySQL 8.0客户端
  • 将arduino开发的Marlin部署到stm32(3D打印机驱动)
  • 【GESP】C++三级练习 luogu-B2156 最长单词 2
  • NeurIPS 2025 截稿攻略
  • 无线传感器网络期末复习自整理资料(天大)
  • 【Game】Powerful——Hero Trial(11)
  • Windows下安装Docker Desktop到C盘以外的盘
  • 透视相机:创意摄影新体验,解锁照片无限可能
  • 计网第四次作业
  • MyBatis 一对多关联映射在Spring Boot中的XML配置
  • 北京市通州区经信局对新增通过国家级生成式人工智能及深度合成算法备案企业给予100w、20w一次性补贴
  • 【软考-软件设计师学习总结】- 计算机网络概述
  • MINIX 1.0 文件系统的实现(C/C++实现)
  • Lynx-字节跳动跨平台框架多端兼容Android, iOS, Web 原生渲染
  • Vue学习百日计划-Deepseek版
  • 残差网络(ResNet)
  • c/c++爬虫总结
  • docker使用过程中遇到概念问题
  • 线程的让位(Yield)
  • 修改linux同步时间
  • 潘大水库介绍
  • object的常用方法
  • MAC-OS X 命令行设置IP、掩码、网关、DNS服务器地址