P1082 同余方程

题目描述

求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入输出格式

输入格式:

输入只有一行,包含两个正整数 a, b,用一个空格隔开。

输出格式:

输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。

输入输出样例

输入样例#1:

3 10
输出样例#1:

7

说明

【数据范围】

对于 40%的数据,2 ≤b≤ 1,000;

对于 60%的数据,2 ≤b≤ 50,000,000;

对于 100%的数据,2 ≤a, b≤ 2,000,000,000。

NOIP 2012 提高组 第二天 第一题

ax≡1(%b)  等价于 ax + by = 1

因为ax % b = 1 % b = 1

即ax = -yb + 1(别忘了y取正负都可以)

裸扩展欧几里得

算出来可能x为负数,只需要多加b然后%b即可

即答案为:((x % b) + b) % b

 #include <bits/stdc++.h>
const int INF = 0x3f3f3f3f;
inline void read(int &x)
{
x = ;char ch = getchar();char c = ch;
while(ch < '' || ch > '')c = ch, ch = getchar();
while(ch <= '' && ch >= '')x = x * + ch - '',ch = getchar();
if(c == '-')x = -x;
}
void exgcd(int a,int b,int &x,int &y)
{
if(!b){x = ;y = ;}
else
{
exgcd(b, a%b, y, x);
y -= a/b * x;
}
} int a,b; int main()
{
read(a);read(b);
int x = ,y = ;
exgcd(a, b, x, y);
printf("%d", ((x%b) + b)%b);
return ;
}

最新文章

  1. C#回顾 - 7.如何使用反射实现工厂模式?
  2. SPSS数据分析—主成分分析
  3. Hadoop 2.5.1集群安装配置
  4. AFNetworking 3.0 源码解读 总结
  5. 根据ip获取用户地理位置
  6. HDU 1251 统计难题
  7. Struts2部署在Websphere上的问题
  8. (转)Vim用法小结
  9. linux查看网卡个数及速度
  10. java之路径
  11. ubuntu 配置ftp服务器 vsftpd
  12. SDVO-DVI-I2C-register
  13. 简单谈谈js中Promise的用法
  14. [转]centos7 修改yum源为阿里源
  15. JAVA 解决 SpringBoot 本地读取文件成功,打包后读取文件失败的方法
  16. 初学Python——列表生成式、生成器和迭代器
  17. python,&lt;一&gt;读取文件open()
  18. Redis创建集群报错
  19. node.js学习一---------------------模块的导入
  20. [DIOCP视频]-DIOCPFileServer视频

热门文章

  1. shell学习笔记1: shell 中的变量与常见符号使用方法
  2. php结合phpStudy实例来熟悉CI框架,用的软件是phpStorm+phpStudy
  3. 用JS把数组内的日期转换为星期
  4. PAT甲级——A1074 Reversing Linked List
  5. WhaleCTF之隐写-Find
  6. 恭喜"微微软"喜当爹,Github嫁入豪门。
  7. Python学习day34-面向对象和网络编程总结
  8. C#生成指定范围内的不重复随机数
  9. springboot核心技术(四)-----Docker、数据访问、自定义starter
  10. Golang Learn Log #0