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

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

输出描述 Output Description 
输出只有一行包含一个正整数x0,即最小正整数解,输入数据保证一定有解。 
【数据范围】 
对于 40% 的数据, 2 ≤b≤ 1,000 ; 
对于 60% 的数据, 2 ≤b≤ 50,000,000 
对于 100% 的数据, 2 ≤a, b≤ 2,000,000,000

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; const int inf = 0x3f3f3f3f;
const int maxn = + ;
const int moder = 1e9 + ;
const int K = ; ll a,b,x,y;
void extendgcd(ll a,ll b,ll &x,ll &y )
{
if(b == )
{
x = ;
y = ;
}
else
{
extendgcd(b,a%b,y,x);
y = y - (x * (a / b));
} return;
} int main()
{
cin >> a >> b;
extendgcd(a,b,x,y);
cout << (x%b+b)%b << endl;
return ;
}

ax≡1(modb)等价于ax+bk=1(k为常数)

求出 x 的最小整数解,取模取正数。

1.题目保证有解,根据不定方程 ax+by=c 有解的条件: c mod gcd(a,b) = 0,我们可以得出gcd(a, b) = 1 。

2.由于c=1, 所以在扩展欧几里得算法后不需要再乘c/gcd(a,b). 直接设个将x调整到正数。

数论练习(4)——同余方程(扩gcd)的更多相关文章

  1. gcd 与 扩gcd 总结

    gcd 定理的证明: 模板: ll gcd(ll a,ll b) { ) return a; else return gcd(b,a%b); } 扩gcd证明: 模板: ll extgcd(ll a, ...

  2. 数论练习(5)——青蛙的约会(扩gcd)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 122502   Accepted: 26015 Descript ...

  3. 数论之高次同余方程(Baby Step Giant Step + 拓展BSGS)

    什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSG ...

  4. 数论——算数基本定理 - HDU 4497 GCD and LCM

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  5. 数论 + 容斥 - HDU 1695 GCD

    problem's Link mean 给定五个数a,b,c,d,k,从1~a中选一个数x,1~b中选一个数y,使得gcd(x,y)=k. 求满足条件的pair(x,y)数. analyse 由于b, ...

  6. [bzoj]2705: [SDOI2012]Longge的问题[数论][数学][欧拉函数][gcd]

    [bzoj]P2705 OR [luogu]P2303 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需 ...

  7. 数学--数论--HDU 5019 revenge of GCD

    Revenge of GCD Problem Description In mathematics, the greatest common divisor (gcd), also known as ...

  8. 数学--数论--HDU1792A New Change Problem(GCD规律推导)

    A New Change Problem Problem Description Now given two kinds of coins A and B,which satisfy that GCD ...

  9. [自用]数论和组合计数类数学相关(定理&证明&板子)

    0 写在前面 本文受 NaVi_Awson 的启发,甚至一些地方直接引用,在此说明. 1 数论 1.0 gcd 1.0.0 gcd $gcd(a,b) = gcd(b,a\;mod\;b)$ 证明:设 ...

随机推荐

  1. Google Now 'not available in your country'

    Google Now 'not available in your country' Don't know how to cope with this problem.

  2. jira-source--plugin

    X11 forward impact on jira plugin system initialization. 而Linux的curl使用的证书库在文件“/etc/pki/tls/certs/ca- ...

  3. Python开发【Django】:基础

    Django基本配置 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Se ...

  4. CMDB内功心法,助我登上运维之巅

    很多70.80后甚至90后都在金庸.古龙.梁羽生先生等武林大家熏陶下成长的,这么多年过去了,我的武侠梦依然不曾散去.曾几何,梦想有一天练就一身绝学,搂着小师妹花前月下,仗剑走天涯,快意人生.可每次的酣 ...

  5. CF909F AND-permutations 构造

    正解:构造 解题报告: 传送门! QAQ我jio得还挺难的,,,构造+数论什么的果然还是不适合灵巧这种菜菜啊QAQ 不过理解了的话也就没有那么难?所以还是港下QAQ 首先看task1 首先要发现一个, ...

  6. api收录

    ip地址查询api http://ip.taobao.com/service/getIpInfo.php?ip= 如: http://ip.taobao.com/service/getIpInfo.p ...

  7. Linux资源使用配置文件 /etc/security/limits.conf

    Linux资源使用配置文件 /etc/security/limits.conf http://www.linuxidc.com/Linux/2012-05/59489.htm Linux就这个范儿P5 ...

  8. C#基础整理(二)

    1.变量类型int.double.string.char.bool.decimal变量使用规则:先声明,再赋值,最后使用 2.命名规范:Camel:第一个单词首字母小写,其他单词首字母大写,其余字母小 ...

  9. java-mybaits-00701-与spring整合

    1.1     整合思路   需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSes ...

  10. Cocos2d-JS实现的2048

    一.前言 2048是之前火过一段时间的休闲数字消除类游戏,它的玩法很简单,上手很容易,可是想到要得到高分却很难,看似简单的游戏却有着很多得分的技巧,想当初这个游戏也曾是陪伴我大学课堂的游戏之一.虽然在 ...