Romantic(扩展欧几里得求逆元(裸题))
来源:互联网 发布:java synchronized原理 编辑:程序博客网 时间:2024/05/19 02:44
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2669
【题意】
给出两个数a,b,求出使得ax+by=1的x和y的值,其中,x是非负数。
【思路】
用扩展欧几里得求解同余方程,若有解,根据贝祖公式,和扩展欧几里得:ax+by=gcd(a,b)=d(a,b已知),一定存在d(解)使得公式成立,所以说,若是我们想求的ax+by=1是否存在,那么只需要判断1%d是否为0,所以说,这里我直接判断d是否为1就可以了,因为只有1%1==0,当然,写成if(1%d==0)也可以的。
【代码】
#include<iostream>using namespace std;typedef long long LL;LL gcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0; return a; } LL r=gcd(b,a%b,x,y),t; t=x; x=y; y=t-(a/b)*y; return r;}int main(){ LL a,b,x,y; while(cin>>a>>b) { LL r=gcd(a,b,x,y); if(r!=1)//或者if(1%r!=0) { cout<<"sorry"<<endl; } else { if(x<0) { x=(x%b+b)%b; y=(y%a-a)%a; } cout<<x<<" "<<y<<endl; } }}
阅读全文
0 0
- Romantic(扩展欧几里得求逆元(裸题))
- Romantic(扩展欧几里得)
- Romantic(扩展欧几里得算法)
- HDU2669:Romantic(扩展欧几里得)
- hdu - 2669 - Romantic(扩展欧几里得)
- 【HDU】2669 - Romantic(扩展欧几里得)
- HDU 2669:Romantic(扩展欧几里得)
- 【hdu 2669】Romantic(扩展欧几里得)
- Romantic(扩展欧几里得)注意数据范围
- hdu 2669 Romantic (扩展欧几里得)
- hdu2669 Romantic(扩展欧几里得入门)
- hdu 2669 Romantic(线性同余,扩展欧几里得)
- hdu2669 Romantic(扩展欧几里得)
- Romantic 欧几里得的扩展
- 扩展欧几里得 Romantic (HDU
- Romantic 扩展欧几里得
- HDU 2669 Romantic 扩展欧几里得
- HDU 2669 Romantic(扩展欧几里得)
- delegate、notification、KVO各优缺点
- hdu 5701 中位数计数
- 混合开发 H5 与 ios、android 交互
- 操作系统:内核线程与用户线程
- No Such Object available on this agent at this OID !!获取不到节点信息
- Romantic(扩展欧几里得求逆元(裸题))
- bootstrapValidator + Ajax表单验证
- 深入浅出-iOS函数式编程的实现 && 响应式编程概念
- python 单个字节到单个字符的转换
- Opencv 检测线
- 优雅的表单验证模式--策略设计模式和ES6的Proxy代理模式
- openwrt下的wget注意要点
- 队列基本用法
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库