POJ1061:青蛙的约会——题解

http://poj.org/problem?id=1061

Description

两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。
我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。

Input

输入只包括一行5个整数s,t,p,q,L,其中s≠t < 2000000000,0 < p、q < 2000000000,0 < L < 2100000000。
(变量名和原题不同请注意)

Output

输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行"Impossible"

Sample Input

1 2 3 4 5

Sample Output

4

设x为最终结果,则我们能列出式子:

(p - q)x = t - s (mod L)

显然该式可以转化为:

(p - q)x + Ly = t - s

再变换一下变成:
ax + by = c

变成了熟悉的exgcd问题,正常求解即可。

#include<cstdio>
#include<cctype>
#include<iostream>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;
}
void exgcd(ll a,ll b,ll &x,ll &y){if(b==0){x=1;y=0;return;}exgcd(b,a%b,x,y);ll temp;temp=x;x=y;y=temp-(a/b)*y;return;
}
int main(){ll s,t,p,q,l;cin>>s>>t>>p>>q>>l;ll a=(p-q+l)%l,b=l,c=(t-s+l)%l,g=gcd(a,b);if(c%g){puts("Impossible");return 0;}a/=g;b/=g;c/=g;ll x,y;exgcd(a,b,x,y);x=(x%b+b)%b;x=x*c%b;cout<<x;return 0;
}

 

转载于:https://www.cnblogs.com/luyouqi233/p/7898974.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用了mysql报oracle错误_mysql数据迁移到oracle错误总结

最近处理一个需求&#xff0c;使用脚本方式将mysql里的数据迁移到oracle中。处理思路主要是利用mysqldump导出的insert dump文件&#xff0c;oracle中建立相同表结构执行insert。记录本次操作中遇到的问题与处理方式&#xff1a;1、超4000字节字符串导入问题描述oracle varchar…

运行Hadoop自带的wordcount单词统计程序

1.使用示例程序实现单词统计 &#xff08;1&#xff09;wordcount程序 wordcount程序在hadoop的share目录下&#xff0c;如下&#xff1a; 123456789[rootleaf mapreduce]# pwd /usr/local/hadoop/share/hadoop/mapreduce[rootleaf mapreduce]# ls hadoop-mapreduce-client-app…

java for 线程_如何在for循环中使用多线程

import java.util.concurrent.Executor;import java.util.concurrent.Executors;public class Test {private final static Executor executor Executors.newCachedThreadPool();//启用多线程public static void main(String[] args) {for(int i0;i<3;i){final int ji; …

office2010安装出现错误1935的解决方法

安装Office2010 professional plus 2010过程中弹出错误&#xff0c;提示错误 1935&#xff0c;安装程序集组件的过程中发生错误。HRESULT:0x800070BC9 如下图所示&#xff1a; 这个错误是由于电脑.net framework 未安装或安装有错误导致的。解决方法为&#xff1a;下载.net fra…

java linux 服务_java项目部署Linux服务器几种启动方式总结经验

一&#xff1a;两种部署包&#xff1a;部署之前先说下两种包&#xff0c;java项目部署到服务器一般有用war包的&#xff0c;也有用jar包的&#xff0c;微服务spring-cloud普及后大部分打包都是jar&#xff0c;部署之前先搞清楚自己要打war包还是jar包&#xff0c;下面小介绍两种…

HTML温故知新1

什么是 HTML&#xff1f; HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页 HTML 标签 HTML 标…

java 接口与包_java常用类包接口

类StringIntegerLongFileDateThread(java.lang.ThreadThread类的定义&#xff1a;public class Thread extends Object implements Runnable)包java.lang.*;java.io.*;java.util.*;java.sql.*;java.math.*;接口:ComparableCollectionMapListRunnable(java.lang.Runnable 该接口…

当使用easyui时,表单的onchange事件失效

功能&#xff1a;新增信徒页面&#xff0c;当选择未受洗&#xff0c;设置受洗时间&#xff0c;教堂选项 disabled。 步骤&#xff1a; 在<select>标签里加入 οnchange"xxxxx()"。 在js里编写xxxxx()方法。 测试 教堂选项没有 disabled。 原因&#xff1…

shell脚本:批量修改文件名(文件名中添加字符)

举例如下&#xff1a;批量创建10个随机字符串的文件&#xff0c;要求每个文件名后面添加_aaa,后缀名不变&#xff1b; [rootlocalhost goodboy]# ls adddbbdedf.html baacjaiija.html bhcfaabcfh.html dgjdcdfbca.html efejadfdji.html agdhcdeaje.html bgffbffjcg.html …

java 格式化小数_java-如何格式化小数位数精度

正如评论中指出的那样,如果您只有一个String表示形式,那么就无法判断它实际上是否有重复的部分,或者精度是否不够高.更新我正在研究一个用分子和分母表示为BigIntegers的有理数的类(并假定尽可能地简化).在那里,我实现了一种以十进制字符串形式表示的方法,并提出了以下方法&…

当使用easyui时,jquery的设置disabled属性方法失效

功能&#xff1a;选择未受洗&#xff0c;设置受洗时间&#xff0c;教堂选项 disabled 步骤&#xff1a; 使用了常规的jquery的方法 //两种方法设置disabled属性$(#areaSelect).attr("disabled",true);$(#areaSelect).attr("disabled","disabled&quo…

用户登录提交前,密码加密传输

需求&#xff1a; 因为OA放在外网&#xff0c;为了提高安全性&#xff0c;用户登录时&#xff0c;密码加密传输&#xff0c;数据库密码加密保存。 解决方案&#xff1a; 前台加密用JQUERY MD5插件&#xff0c;这个工具从网上下载的。 后台密码加密&#xff0c;用java的MD5工…

java 内存分布_一图看懂JVM内存分布,永久记住!

经常在说JVM内存分布&#xff0c;也经常去看&#xff0c;但是总是在面试的时候说不清楚或者模糊&#xff0c;甚至有可能说错&#xff0c;只有真正的理解&#xff0c;并且在心中有一个总结构图才能记得清楚说的清楚&#xff01;| JVM总览图java内存区域主要分程序计数器、Java虚…

Winodows10 安全登录(Administrator账户与Microsoft Account关联

我们都知道windows系统最大的管理员是administrator&#xff0c;linux是root&#xff0c;从windows7时代开始&#xff0c;安装操作系统的时候会在最后一步提示创建一个本地账户一直延续到windows8、windows8.1、windows10。近期微软发布了windows10后&#xff0c;很多用户都开始…

微信企业号三个连接模式

在银行里做微信企业号开发有半年多了&#xff0c;因银行封装了调用微信企业号的方法&#xff0c;说是微信企业号开发&#xff0c;其实就是jsp&#xff0c;java代码的编写&#xff0c;银行用的开发工具是EOS&#xff0c;对这个工具我只想说&#xff0c;用久了&#xff0c;就找不…

java opencv安装路径_Java搭建opencv开发环境

由本菜13历经4天才搭建的好的Java OpenCv开发环境带来 .PS:不保证过程都是必须的,必要的.反正我自己成功了... 嘿嘿嘿.官方网站SourceForge点击FilesFiles因为我的机器是Mac,所以选择了unix. 然后下载3.4.3版本3.4.3PS:主要是因为刚开始接触这个OpenCv的时候是用HomeBrew装的, …

iBatis——执行原理

a) 执行原理 1、 将一个对象作为 参数&#xff08;对象可以是Java Bean&#xff0c;Map实现和基本类型的包装类&#xff09;&#xff0c;参数对象将为SQL修改语句和查询语句设定参数值。 2、 执行 mapped statement。这是SQL Maps最重要的步骤。SQL Map框架将创建一个PreparedS…

让IT工作者过度劳累的12个坏习惯

1. QQ、MSN、Gtalk&#xff0c;一个都不少。坏习惯 由于聊天对象与聊天内容的不可控制性&#xff0c;使用即时通讯软件是降低工作效率的罪魁祸首。有调查显示&#xff0c;使用即时通讯软件&#xff0c;工作效率会降低 20%. 2. “总想多看一点点”——忘记上网的目的。 本想查找…

flux java_Java反应式框架Reactor中的Mono和Flux

1. 前言最近写关于响应式编程的东西有点多&#xff0c;很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多&#xff0c;诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼&#xff0c;所以今天我们就…

MySQL grant 权限,分别可以作用在多个层次上

1. grant 作用在整个 MySQL 服务器上&#xff1a;grant select on *.* to dbalocalhost; -- dba 可以查询 MySQL 中所有数据库中的表。grant all on *.* to dbalocalhost; -- dba 可以管理 MySQL 中的所有数据库2. grant 作用在单个数据库上&#xff1a;grant select on testdb…