poj 1061 青蛙的约会(扩展欧几里得)
来源:互联网 发布:以太网数据帧最大长度 编辑:程序博客网 时间:2024/04/27 22:29
中文题就不说题意了吧……最近打算学学数论,数学相关的真是一点都不会啊Orz,首先是一发基础的……这题以前做过,但是当时做得稀里糊涂的,连扩展欧几里得还不太明白就瞎搞搞过了,今天又做了一遍,把公式神马的都重推了一遍,感觉不错,唉,以后做题要注意了,不能没搞懂就过去了。。。。
设两只青蛙一共跳了t次,那么就可以得到一个方程:(a+mt)-(b+nt)=kL (k=0,1,2,3,4......),移项,可以得到:(m-n)t-Lk=y-x,t和k为未知数,剩下就是扩展欧几里得直接求方程的解了,这里求出的t不一定最优,对L取模即可。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<map>#include<queue>#include<set>#include<stack>#include<cmath>#include<vector>#define inf 0x3f3f3f3f#define Inf 0x3FFFFFFFFFFFFFFFLL#define eps 1e-9#define pi acos(-1.0)using namespace std;typedef long long ll;ll ext_gcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1;y=0; return a; } ll d=ext_gcd(b,a%b,y,x); y-=a/b*x; return d;}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); ll a,b,m,n,L,x,y; cin>>a>>b>>m>>n>>L; ll A=m-n,B=-L,C=b-a; ll d=ext_gcd(A,B,x,y); if(C%d!=0) cout<<"Impossible"<<endl; else { x=x*C/d; if(B<0) B=-B; x=(x%B+B)%B; cout<<x<<endl; } return 0;}
0 0
- POJ 1061 青蛙的约会 扩展欧几里得
- poj 1061 青蛙的约会 扩展欧几里得
- poj 1061青蛙的约会(扩展欧几里得)
- POJ 1061 青蛙的约会( 扩展欧几里得)
- poj 1061 青蛙的约会(扩展欧几里得)
- Poj 1061 青蛙的约会(扩展欧几里得)
- POJ-1061-青蛙的约会(扩展欧几里得)
- poj 1061 青蛙的约会 【扩展欧几里得】
- poj 1061 青蛙的约会(扩展欧几里得)
- POJ 1061 青蛙的约会 扩展欧几里得
- POJ 1061 青蛙的约会 (扩展欧几里得)
- poj 1061 青蛙的约会 【扩展欧几里得】
- POJ 1061 青蛙的约会(扩展欧几里得)
- POJ 1061 青蛙的约会(扩展欧几里得)
- poj 1061 青蛙的约会 【扩展欧几里得】
- Poj 1061 青蛙的约会(扩展欧几里得)
- poj 1061 青蛙的约会 扩展欧几里得
- poj-1061-青蛙的约会【扩展欧几里得】
- 发布升级
- HDU1116--Play on Words HDU(164)
- hdoj 畅通工程(简单最小生成树问题)
- The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the asso
- POI事件驱动模式读写Excel和格式设置及2007EXCEL解析SAXParser类找不到
- poj 1061 青蛙的约会(扩展欧几里得)
- mongoDB学习笔记——安装及启动
- 数据库开发(3)SQL
- 微信公众账号离普通人有多远?
- 双向循环链表
- 新的开始
- 题目1345:XXX定律之画X
- QT5.2出错:找不到头文件QApplication
- 向linux虚拟机里传文件