同余方程
来源:互联网 发布:cacti添加windows主机 编辑:程序博客网 时间:2024/04/29 20:21
本题地址: http://www.luogu.org/problem/show?pid=1082
【NOIP 2012 提高组 第二天 第一题】
【题目描述】
求关于 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。
【思路&知识补充】
运用扩展欧几里得算法,求出一组解。根据所有解的规律:
x加上b/gcd(a,b),同时y减去a/gcd(a,b)后,仍满足ax+by=c。
【代码】
<span style="font-size:18px;">var a,b,c,x,y:int64;function gcd(a,b:int64; var x,y:int64):int64;//扩展欧几里得定理var t:int64;begin if b=0 then//当b=0时退出,此时a为最大公约数 begin x:=1; y:=0; exit(a); end; gcd:=gcd(b,a mod b,x,y); t:=x; x:=y; y:=t-(a div b)*y;end;begin read(a,b); c:=gcd(a,b,x,y); while (x-(b div c)>0) do x:=x-b div c; //判断x大小,如果比0大即减(b div c),此时y+(a div c)得数相等 if x<0 then while x<0 do x:=x+(b div c); //判断x小于零,同理加(b div c) writeln(x);end.</span>
0 0
- 线性同余方程
- 解同余方程
- 线性同余方程
- 线性同余方程
- 线性同余方程
- 一次同余方程
- poj2115 同余方程
- 同余方程
- NOIP2012 同余方程
- 【noip2012】同余方程
- BZOJ2995同余方程
- NOIP2012 同余方程
- NOIP2012D2T1 同余方程
- hdu1573 同余方程
- noip2012同余方程
- BSGS:同余方程
- [noip2012tg] 同余方程
- 线性同余方程
- C语言中.h和.c文件解析
- 把json转成java、objc的module的小工具
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- php5中对象赋值机制
- 要通过Echarts把数据可视化,前台与后台以及数据库怎么搭建?
- 同余方程
- NS3网络仿真(8): 实时仿真
- hdu1005(矩阵加速)
- 迷宫问题
- ios7 textViewDidChange代理/通知中修改TextView内容崩溃的原因
- 浅谈算法和数据结构: 十 平衡查找树之B树
- 由CSP 题目引发的关于Map的一些想法
- POJ 3984 迷宫问题(bfs)
- uva 11882Biggest Number