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. go 工具链目前[不支持编译 windows 下的动态链接库]解决方案

    go 工具链目前[不支持编译 windows 下的动态链接库][1],不过[支持静态链接库][2].想要产生dll,可以这样 workaround ,参考 golang [issuse#11058][ ...

  2. 【css a标签 鼠标悬浮时变手型】

    <a href="#" style="cursor:pointer">

  3. macOS Sierra 10.12版本 显示隐藏文件

    1.显示隐藏文件 打开Terminal 输入:defaults write com.apple.finder AppleShowAllFiles -bool true 再输入: killall Fin ...

  4. 两个提高工作效率的神器-Restlet Client和fe助手

    首先是要FQ,百度***或者直接下载蓝灯. 然后安装第一个WEB前端助手:

  5. Eclipse中没有javax.servlet和javax.servlet.http包的处理办法

    使用Eclips开发JSP也需要这两个包:javax.servlet和javax.servlet.http:若提示没有javax.servlet包则安装如下处理办法解决: 如果你装了Tomacat,那 ...

  6. 解决FlexPaper分页分段加载问题(转)

    FlexPaper是一个开源的PDF文档在线查看控件.用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件.FlexPa ...

  7. docker——三剑客之Docker Machine

    Docker Machine是Docker官方三剑客项目之一,负责使用Docker的第一步,在多种平台上快速安装Docker环境.它支持多种平台,让用户在很短时间内搭建一套Docker主机集群. Ma ...

  8. eclipse引入httpServlet源码

    eclipse引入httpServlet源码 展开Apache Tomcat v7.0[Apache Tomcat v7.0] -> servlet-api.jar 找到 -> http ...

  9. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  10. AtCoder Grand Contest 029 Solution

    A: Solved. 签. #include <bits/stdc++.h> using namespace std; #define ll long long #define N 200 ...