【vijos】 1781 同余方程 exgcd
来源:互联网 发布:中国农大网络教育首页 编辑:程序博客网 时间:2024/05/16 12:38
链接
描述
求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解。
格式
输入格式
输入只有一行,包含两个正整数a, b,用一个空格隔开。
输出格式
输出只有一行,包含一个正整数x0,即最小正整数解。输入数据保证一定有解。
样例1
样例输入1[复制]
3 10
样例输出1[复制]
7
限制
每个测试点1s
提示
对于40%的数据,2 ≤b≤ 1,000;
对于60%的数据,2 ≤b≤ 50,000,000;
对于100%的数据,2 ≤a, b≤ 2,000,000,000。
NOIP 2012 DAY 2 T1
对于方程ax ≡ 1 (mod b)可以转化为ax=1-by(y为常数)。则ax+by=1。
根据扩展欧几里得算法我们得知:ax0+by0=1=gcd(a,b)。则a(x0+kb)+b(y0-ka)=1。
则最小的正整数即为(x0+b)%b。
代码如下:
#include<iostream>#include<cstdio>using namespace std;void exgcd(int a,int b,int &x,int &y){ if(b==0) { x=1; y=0; return; } exgcd(b,a%b,x,y); int t=x; x=y; y=t-(a/b)*x;}int main(){ int a,b,x,y; scanf("%d%d",&a,&b); exgcd(a,b,x,y); printf("%d\n",(x+b)%b); return 0;}
1 0
- 【vijos】 1781 同余方程 exgcd
- noip2012 同余方程 exgcd
- vijos P1781同余方程
- exgcd扩展欧几里得--noip同余方程
- poj 1061 exgcd解同余方程
- 洛谷 1082 [NOIP2012] 同余方程 exgcd
- Vijos 1781(Code[VS] 1220)同余方程
- 【poj1061】青蛙的约会 exgcd解同余方程
- noip2012 同余方程 关于gcd及exgcd
- [23] Vijos P1781 同余方程(数论)
- POJ 2115 C Looooops(exgcd—解一元线性同余方程)
- 线性同余方程
- 解同余方程
- 线性同余方程
- 线性同余方程
- 线性同余方程
- 一次同余方程
- poj2115 同余方程
- Kettle6.0连接MongoDB报错
- Roman to integer
- Linux 安装各种情况记录
- JAVA运算符优先级与ASCII码
- JAVA 创建 ElaticSearch mapping
- 【vijos】 1781 同余方程 exgcd
- Java:一些使用上的注意
- Keras安装
- 编写的全加器与半加器的代码
- 搞定需求变化
- Roadblock
- freemarker 将object转化为json类型
- PAT(A) - 1096. Consecutive Factors (20)
- 异常语法的执行分析