【例题】【数论(拓欧)】NKOJ 1886 同余方程
2016-05-20 01:35
309 查看
NKOJ 1886 同余方程
时间限制 : 10000 MS 空间限制 : 128000 KB
问题描述
求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
输入格式
输入只有一行,包含两个正整数 a, b,用一个空格隔开。
输出格式
输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。
样例输入
3 10
样例输出
7
提示
对于 40%的数据,2 ≤b≤ 1,000;
对于 60%的数据,2 ≤b≤ 50,000,000;
对于 100%的数据,2 ≤a, b≤ 2,000,000,000。
//……………………………………………………………………………………………………………………
分析:拓欧应用之3:解模线性方程
代码:
时间限制 : 10000 MS 空间限制 : 128000 KB
问题描述
求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
输入格式
输入只有一行,包含两个正整数 a, b,用一个空格隔开。
输出格式
输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。
样例输入
3 10
样例输出
7
提示
对于 40%的数据,2 ≤b≤ 1,000;
对于 60%的数据,2 ≤b≤ 50,000,000;
对于 100%的数据,2 ≤a, b≤ 2,000,000,000。
//……………………………………………………………………………………………………………………
分析:拓欧应用之3:解模线性方程
代码:
#include<cstdio> using namespace std; long long f(long long a,long long b,long long &x,long long &y) { if(b==0) { x=1,y=0; return a; } long long r,x0,y0; r=f(b,a%b,x0,y0); x=y0,y=x0-a/b*y0; return r; } int main() { long long x,y,a,b;scanf("%I64d%I64d",&a,&b); f(a,b,x,y); if(x>0) x%=b; else if(x<0) x=(x%b)+b; printf("%d",x); }
相关文章推荐
- iOS中CocoaPods的安装及错误详解
- selenium+python笔记9
- selenium+python笔记8
- C8051逆向电阻屏:头儿拍脑袋说电阻屏IC好赚钱3块钱成本能卖20几块。,一个月不分昼夜逆向成功后头儿说电阻屏已经被市场淘汰请放弃治疗。
- js获取页面元素距离浏览器工作区顶端的距离
- ios ZBar扫二维码奇奇怪怪的错误
- 234. Palindrome Linked List
- 多维正态分布与图形识别
- HTML入门
- UVa11400 - Lighting System Design——[动态规划]
- 2016.5.19渗透经验总结
- 【结论】【数论】拓展欧几里得算法、费马小定理
- STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。
- <<js>>每个函数都有作用域链
- 【二分】【高精度】Vijos P1472 教主的集合序列
- 实战ItemTouchHelper仿网易新闻客户端自定义栏目页面
- 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
- 浅谈SSO及web开发基础
- 自定义继承ListView控件实现下拉刷新底部加载的实现
- STM32的bulk双缓冲传输速度的讨论,硬件的坑永远填不完