摘要写在一瞪眼。

#include<iostream>
using namespace std;
long long exgcd(long long a,long long b,long long &k,long long &t)
{
if (b==0)
{
k=1;
t=0;
return a; }
else
{
long long tp_gcd;
tp_gcd=exgcd(b,a%b,k,t);
long long temp;
temp=k;
k=t;
t=temp-(a/b)*t;
return tp_gcd;
}
}
// (n-m)*t-k*l=x-y
// --> a*x-b*y=c a=n-m,b=l;
// -->使用扩展欧几里得能够求得a*x0-b*y0=gcd(a,b),d=gcd(a,b) 的解x0,y0
// x0*(l/d)就得到了第2行中,x的一个特解x'
// x=x'+k*(l/d)
int main()
{
long long x,y,n,m,l;
long long x0,y0;
while(cin>>x>>y>>m>>n>>l)
{
long long d=exgcd(n-m,l,x0,y0); //d是gcd(a,b)
if((x-y)%d!=0) cout<<"Impossible"<<endl;
else
{
x0*=(x-y)/d;
x0=(x0%(l/d)+(l/d))%(l/d);
cout<<x0<<endl;
}
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

poj 1061 扩展欧几里德同余方程求解的更多相关文章

  1. POJ - 1061 扩展欧几里德算法+求最小正整数解

    //#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma GCC optimize(2) #inclu ...

  2. POJ 2891 扩展欧几里德

    这个题乍一看跟剩余定理似的,但是它不满足两两互素的条件,所以不能用剩余定理,也是给了一组同余方程,找出一个X满足这些方程,如果找不到的话就输出-1 因为它不满足互素的条件,所以两个两个的合并,最后合成 ...

  3. poj 1061 扩展欧几里得解同余方程(求最小非负整数解)

    题目可以转化成求关于t的同余方程的最小非负数解: x+m*t≡y+n*t (mod L) 该方程又可以转化成: k*L+(n-m)*t=x-y 利用扩展欧几里得可以解决这个问题: eg:对于方程ax+ ...

  4. poj 1061(扩展欧几里得定理求不定方程)

    两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特 ...

  5. POJ - 1061 扩展gcd

    题意:求\((n-m)t+Lk=x-y\)的解\(t\) #include<iostream> #include<algorithm> #include<cstdio&g ...

  6. poj 2115 扩展欧几里德

    #include<stdio.h> #include<string.h> #define max 32 typedef long long LL; LL pow2[max+]; ...

  7. POJ 1061 扩展欧几里得

    #include<stdio.h> #include<string.h> typedef long long ll; void gcd(ll a,ll b,ll& d, ...

  8. POJ 1061 青蛙的约会(扩展欧几里德)

    点我看题目 题意 : 中文题不详述. 思路 : 设经过s步后两青蛙相遇,则必满足(x+m*s)-(y+n*s) = K*L(k = 0,1,2....) 变形得:(n-m)*s+K*L = x-y ; ...

  9. POJ 1061 青蛙的约会(扩展GCD求模线性方程)

    题目地址:POJ 1061 扩展GCD好难懂.. 看了半天.最终把证明什么的都看明确了. .推荐一篇博客吧(戳这里),讲的真心不错.. 直接上代码: #include <iostream> ...

随机推荐

  1. Factorization Machines 学习笔记(四)学习算法

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法.它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...

  2. 破解.net程序 编译和反编译方法

    原文地址:http://www.cnblogs.com/li-peng/archive/2013/01/31/2886727.html 有好多.net程序有加密狗或者有验证,如果exe或dll没有做过 ...

  3. ORA-12520错误解决一则

    问题描写叙述: 今天突然发现连接数据库时报错,用pl/sql dev连接数据时,有时能连接上,有时连接时报: ORA-12520: TNS: 监听程序无法找到须要的server类型的可用句柄 通过se ...

  4. iOS_UIButton 简单操作

    UIButton 风格 typedef NS_ENUM(NSInteger, UIButtonType) { UIButtonTypeCustom = 0, // no button type UIB ...

  5. 百度map android sdk3.5实现定位 并跳转的指定坐标,加入标记

    前几天又下载了新的百度地图sdk,3.5版本号.发现百度地图api有了较大变化 定位和3.0版本号差点儿相同 可是设置地图中心和加入maker标记有较大变化 设置地图中心点 // 定义地图状态zoom ...

  6. fiddler4使用教程(转)

    Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.com Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料. Fiddler是最 ...

  7. 在静态方法里调用spring注入的方法

    在静态方法里直接调用非静态方法是不行的. 那如何调用spring注入的方法呢? @Component public class AutoLoginUtil {     @Autowired     p ...

  8. Mac OS X在建筑Python科学计算环境

    经验(比如这篇日志:http://blog.csdn.net/waleking/article/details/7578517).他们推荐使用Mac Ports这种软件来管理和安装全部的安装包.依照这 ...

  9. Codeforces Round #277.5 (Div. 2)---B. BerSU Ball (贪心)

    BerSU Ball time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  10. HorizontalScrollView做页卡的一个小记录

    用HorizontalScrollView做页卡,实现一个如下图的效果: