青蛙的约会----POJ1061
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 133905 | Accepted: 29707 |
Description
我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。
Input
Output
Sample Input
1 2 3 4 5
Sample Output
4 题解:假设A的起始位置为A,A的步长为a;B的起始位置为B,步长为b,地球赤道周长为L;运动t次后A,B相遇;则:
A的运动方程为 :A+at;
B的运动方程为 :B+bt;
相遇条件为 :A+at-B-bt=mL;
移项整理得 :(b-a)t+mL=A-B; 所以很明显,这是一道用扩展欧几里得解不定项的问题,因为用扩展欧几里得解得的x只是满足方程的一个解,不一定是符合题意的最优解,所以最后的结果要取最小正整数解
#include<iostream>
#include<math.h>
#define max 0x3f3f3f3f
#define ll long long
#define mod 1000000007
using namespace std;
ll x,y,r,s;
void exgcd(ll a, ll b, ll &x, ll &y) //拓展欧几里得算法
{
if(!b)
x = , y = ;
else
{
exgcd(b, a % b, y, x);
y -= x * (a / b);
}
} ll gcd(ll a,ll b)
{
return b==?a:gcd(b,a%b);
}
void T(ll a,ll b,ll c)
{
r=gcd(a,b);
s=b/r;
exgcd(a,b,x,y);//得到x0
x=x*c/r; //得到x1
x=(x%s+s)%s; //得到最小正整数解
}
int main()
{
ll A,B,L,a,b,r,c;
scanf("%lld%lld%lld%lld%lld",&A,&B,&a,&b,&L);
r=gcd(b-a,L),c=A-B;
if(c%r!=||a==b)
printf("Impossible\n");
else
{
T(b-a,L,A-B);
printf("%ld\n",x);
} return ;
}
青蛙的约会----POJ1061的更多相关文章
- 青蛙的约会---poj1061(扩展欧几里德)
题目链接:http://poj.org/problem?id=1061 就是找到满足 (X+mt)-(Y+nt) = Lk 的 t 和 k 即可 上式可化简为 (n-m)t + Lk = X-Y;满足 ...
- POJ1061 青蛙的约会 —— 扩展gcd
题目链接:https://vjudge.net/problem/POJ-1061 青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submi ...
- POJ1061青蛙的约会[扩展欧几里得]
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 108911 Accepted: 21866 Descript ...
- poj1061 青蛙的约会 扩展欧几里德的应用
这个题解得改一下,开始接触数论,这道题目一开始是看了别人的思路做的,后来我又继续以这种方法去做题,发现很困难,学长告诉我先看书,把各种词的定义看懂了,再好好学习,我做了几道朴素的欧几里德,尽管是小学生 ...
- POJ1061——青蛙的约会(扩展欧几里德)
青蛙的约会 Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件 ...
- POJ1061青蛙的约会(扩展欧几里德算法)
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 102239 Accepted: 19781 Descript ...
- POJ1061 青蛙的约会(扩展欧几里得)
题目链接:http://poj.org/problem?id=1061 青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submission ...
- 青蛙的约会(poj1061+欧几里德)
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 94174 Accepted: 17412 Descripti ...
- 解题报告:poj1061 青蛙的约会 - 扩展欧几里得算法
青蛙的约会 writer:pprp Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 119716 Accepted: 25238 ...
随机推荐
- U14.04 teamviewer install
转载http://www.cnblogs.com/kunyuanjushi/p/5205639.html 安装i386库 sudo apt-get install libc6:i386 libgcc1 ...
- 申请参加腾讯云自媒体分享计划,送代金券+CN域名
文章介绍 看到腾讯支持博客了,就尝试下,看看效果如何. 文章属于转载,文末有文章来源,转载注明出处. 活动规则 活动资格:面向腾讯云官网已注册且完成实名认证用户,除协作者之外,其余用户均可参与; 如何 ...
- WindowsService服务安装脚本
安装脚本%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\liuyl\WeiXinService\WindowsSe ...
- 获取oracle 库所有表名
(mybatis多参)
- iOS11.0后APP的图标和启动图
随着Xcode9的更新,APP的图标和启动图也发生了略微变化,下面介绍下图标和启动图的设置. 1.APP图标: 这些是系统默认你开发的项目支持iPad.Spotlight等,其实真正我们的项目只要支持 ...
- 表单校验--js部分
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 15、OpenCV Python 轮廓发现
__author__ = "WSX" import cv2 as cv import numpy as np # 基于拓扑结构来发现和绘制(边缘提取) # cv.findConto ...
- 老男孩Day13作业:ORM学员管理系统
一.作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图: 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上 ...
- Linux常用的命令(3)
1 文件的内容显示 cat 显示全部 more: 分屏幕显示,只能向后翻 less: 分屏幕显示,可以向上翻 head:查看前n行 默认10行 tail:查看后n行 -n -f: 查看文件尾部,不退出 ...
- 19.阻止事件冒泡e.stopPropagation();
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...