题目链接:http://poj.org/problem?id=1061
题目题目:在一个周长为L的圆圈上两只青蛙分别在s1,s2,速度(步长)分别为v1,v2,它们往同一风向走,问几步后相遇。
依然是扩展欧几里德,要注意的是这里数据范围很大,用64位并且用gcd处理一下,之前没处理就wa了好多次。
代码如下:
//============================================================================
// Name : poj1061.cpp
// Author : ssslpk
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include<cmath>
using namespace std;
#define int64 long long
int64 a,b,c,d,x,y;
int64 gcd(int64 a,int64 b)
{
return b? gcd(b,a%b):a;
}
int64 exgcd(int64 a,int64 b)
{
if(b==0)
{
x=1;
y=0;
return a;
}
d=exgcd(b,a%b);
int64 xx=y,yy=x-a/b*y;
x=xx;
y=yy;
return d;
}
int main() {
int64 s1,s2,v1,v2,l;
while(cin>>s1>>s2>>v1>>v2>>l)
{
if(v1>v2){a=v1-v2;b=l;c=s2-s1;}
else {a=v2-v1;b=l;c=s1-s2;}
d=gcd(a,b);
if(c % d)
{
cout<<"Impossible"<<endl;
continue;
}
a/=d;b/=d;c/=d;
d=exgcd(a,b);
x*=c;
x=(x%b+b)%b;
cout<<x<<endl;
}
return 0;
}
分享到:
相关推荐
青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。 Input 输入只包括一行5个整数x,y,m,n,L,其中x≠y ,0 、n ,0 。 Output ...
Problem 1061 青蛙的约会 poj解题报告。有源码。可直接提交C++实现
POJ是在线测评系统这里有一些经典试题。P1061青蛙的约会是一道经典试题代码给出了Accepted算法.zip
算法-青蛙的约会(POJ-1061)(包含源程序).rar
破解poj
POJ1054讨厌的青蛙,利用枚举算法解题,值得一做。
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
poj分类poj分类poj分类poj分类
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
poj1002 的源代码 第一次做 超时了
这题是道神题,神就神在,它既能让你搞懂网络流及其优化,还给了你很大的优化空间。
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
北大POJ1159-Palindrome 解题报告+AC代码
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
poj习题第一题,很有意思,是学习poj的开始
poj 百练 题目分类 poj 百练 题目分类