P1082 同余方程
题意:给定a,b,求$ax \equiv 1 \pmod b$的最小正整数解x,保证有解
exgcd:求$ax+by=gcd(a,b)$的 一组解x,y
首先根据正常的gcd可得出 $gcd(a,b)=gcd(b,a\%b)$
假设我们已经得到了一组解x' y'
则 $bx'+(a\%b)y'=gcd(b,a\%b)$
则 $ax+by=gcd(a,b)=gcd(b,a\%b)=bx'+(a\%b)y'$
而且$a\%b=a-\lfloor\frac{a}{b}\rfloor*b$
所以$ax+by=bx'+(a-\lfloor\frac{a}{b}\rfloor*b)y'$
$a(x)+b(y)=a(y')+b(x'-\lfloor\frac{a}{b}\rfloor*y')$
对应相等
$x=y'$
$y=x'-\lfloor\frac{a}{b}\rfloor*y'$
一直递归求解,若b=0
则x=1 y=0 就行了
对于方程 $ax \equiv b \pmod c$有解,当且仅当gcd(a,c)|b
所以对于此题gcd(a,b)|1
额
貌似给你ab互质了啊
所以。。。。
直接用
ax+by=gcd(a,b)=1
求解就行了
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
#define int long long
#define olinr return
#define _ 0
#define love_nmr 0
#define DB double
inline int read()
{
int x=,f=;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-')
f=-f;
ch=getchar();
}
while(isdigit(ch))
{
x=(x<<)+(x<<)+(ch^);
ch=getchar();
}
return x*f;
}
inline void put(int x)
{
if(x<)
{
x=-x;
putchar('-');
}
if(x>)
put(x/);
putchar(x%+'');
}
inline void exgcd(int a,int b,int &x,int &y)
{
if(!b)
{
x=;
y=;
return;
}
exgcd(b,a%b,x,y);
int t=x-a/b*y;
x=y;
y=t;
}
signed main()
{
int a,b,x,y;
a=read();
b=read();
exgcd(a,b,x,y);
while(x<) x+=b;
put(x);
olinr ~~(^_^)+love_nmr;
}
P1082 同余方程的更多相关文章
- 洛谷——P1082 同余方程
P1082 同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输 ...
- 洛谷P1082 同余方程 [2012NOIP提高组D2T1] [2017年6月计划 数论06]
P1082 同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输 ...
- 洛谷P1082 同余方程 题解
题目链接:https://www.luogu.com.cn/problem/P1082 题目大意: 求关于 \(x\) 的同余方程 ax≡1(mod b) 的最小正整数解. 告诉你 \(a,b\) 求 ...
- [NOIP2012] 提高组 洛谷P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 洛谷P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- Luogu P1082 同余方程(NOIP 2012) 题解报告
题目传送门 [题目大意] 求关于x的同余方程 ax≡1(mod b)的最小整数解. [思路分析] 由同余方程的有关知识可得,ax≡1(mod b)可以化为ax+by=1,此方程有解当且仅当gcd(a, ...
- [Luogu P1082]同余方程
题目链接 这道题求关于x的同余方程ax≡1(mod b)的最小正整数解.换而言之方程可以转换为ax+by=1,此时有y为负数.此时当且仅当gcd(a,b)|1时,方程有整数解. 于是乎这道题就变成了a ...
- 洛谷 P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 【luogu P1082 同余方程】 题解
最近一直在学习数论,讲得很快,害怕落实的不好,所以做一道luogu的同余方程练练手. 关于x的同余方程 ax ≡ 1 mod m 那么x其实就是求a关于m的乘法逆元 ax + my = 1 对于这个不 ...
- 洛谷 P1082 同余方程 —— exgcd
题目:https://www.luogu.org/problemnew/show/P1082 用 exgcd 即可. 代码如下: #include<iostream> #include&l ...
随机推荐
- WINDOWS 7下的记事本程序目录
这是win7的目录 系统所在分区:\Windows\system32\notepad.exe
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)
今天在尝试用下面的python代码对MySQL进行数据的插入.更新和删除时, 突然发现代码执行成功, 通过代码查询也显示数据已经插入或更新, 但是当我在MySQL客户端通过SQL语句查询时, 数据库中 ...
- javascript——正则表达式(RegExp、String)(未完工)
在 javascript 中,正则表达式由两部分组成:正则表达式的匹配模式文本:匹配模式文本的修饰符: 修饰符: 修饰符 说明 i 忽略大小写 g 执行全局匹配 m 执行多行匹配 匹配模式文本包括以下 ...
- Qt opencv开发环境
在.pro文件中添加 INCLUDEPATH += C:\opencv\build\include\ #头文件路径 C:\opencv\build\include\opencv\ C:\opencv\ ...
- DAY19-Django之model进阶
QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Entry.objects.all()[ ...
- Error: Cannot run program "/home/xxx/android_developer_tools/android-ndk-r8/ndk-build.cmd": Unknown reason
运行OpenCV官方例子 tutorial-2-mixedprocessing 总提示 /home/xxx/android_developer_tools/ 明明在PATH中采用好几种方法都加入了 ...
- ubuntu16部署gitlab
一.gitlab的安装 1. 安装依赖包 $ sudo apt-get update #如无ssh还需安装openssh-server $ sudo apt-get install postfix c ...
- 关于taskaffinity属性的作用
意味着这activity更喜欢哪个TESK,具体见下方说明 当一个包含FLAG_ACTIVITY_NEW_TASK标志的intent启动一个activity时. 一个新的activity,默认地启动到 ...
- day17 11.JdbcUtils工具抽取
连接数据库的四个必要条件:driverclass.url.username.password. package cn.itcast.utils; import java.sql.Connection; ...
- cocos2d中setBlendFunc设置颜色混合方案
CCSprite有一个ccBlendFunc类型的blendFunc_结构体成员,可以用来设置描绘时的颜色混合方案.ccBlendFunc包含了一个src和一个dst,分别表示源和目标的运算因子. 如 ...