poj1061

poj 1061青蛙的约会 青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 90083   Accepted: 16257 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面 阅读详情
青蛙的约会

Description

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

Input

输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。

Output

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

Sample Input

1 2 3 4 5

Sample Output

4

Source


扩展欧几里德。由于两只青蛙所跳的步数是相同的,我们设其为s,则sm+x是青蛙A从坐标原点到终点所走的距离,sn+y是B走的距离,他们相减一定是地面周长的整数倍,设为k*l;则:(ms+x)-(ns+y)=kl,变形得:(n-m)s+lk=x-y。对于方程 a*x+b*y=n;有整数解得充分必要条件是(n %gcd(a,b)==0)。我们可以先用扩展欧几里德算法求出一组x0,y0。也就是a*x0+b*y0=gcd(a,b);然后两边同时除以gcd(a,b),再乘以n,这样就得到了方程 a*x0*n/gcd(a,b)+b*y0*n/gcd(a,b)=n;我们也就找到了方程的一个解。即x=x0*n/gcd(a,b) ;y=y0*n/gcd(a,b)。若gcd(a,b)=1,且x0,y0为a*x+b*y=n的一组解,则该方程的任一解可表示为:x=x0+b*t,y=y0-a*t;且对任一整数t,皆成立。但实际问题中,我们往往被要求去求最小整数解,所以我们就可以将一个特解x,t=c/gcd(a,b),x=(x%t+t)%t;就可以了。x就是所求的最小整数解。

代码如下:

#include<stdio.h>
long long X;
long long Y;
long long extgcd(long long a, long long b) {
    long long d, t;
    if (b == 0) {
        X = 1;
        Y = 0;
        return a;
    }
    d = extgcd(b, a % b);
    t = X - a / b * Y;
    X = Y;
    Y = t;
    return d;
}

int main() {
    long long x, y, m, n, l, d, r;
    while (scanf("%lld%lld%lld%lld%lld", &x, &y, &m, &n, &l) == 5) {
        d = extgcd(n - m, l);
        r = l / d;
        if ((x - y) % d)
            printf("Impossible\n");
        else
            printf("%lld\n", ((x - y) / d * X % r + r) % r);
    }
    return 0;
}


题解: poj 1061 nefu 84(拓展欧几里得) POJ1061 Language:Default青蛙的约会 Time Limit: 1000MSMemory Limit: 10000KTotal Submissions: 105002Accepted: 20595Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一 阅读详情

相关推荐

POJ-1061 青蛙的约会

专题IV F - 青蛙的约会 题面 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可...

h_bby的博客 541

leetcode.403 青蛙过河-回溯解法/dp解法

题目: 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。 开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格 1 跳至单元格 2 )。 如果青蛙上一步跳跃了 k 个单位,那么它接下来的跳跃距离只能选择为 k - 1、k 或 k + 1 个单位。

ITZhaoYiSheng的博客 1759

安装esxi7.0

保存重启后就能安装。vCenter Server是VMware vSphere虚拟化架构中的核心管理工具,充当ESXi主机及虚拟机中心管理点的服务,利用vCenter Server,可以集中管理多ESXi主机及其虚拟机,安装、配置和管理vCenter Server 不当可能会导致管理效率降低,或者致使EXSi主机和虚拟机停用。提示选择安装VMware ESXi 使用的存储,ESXi支持U盘以及SD卡安装,如系统中存在多块存储设备,选择需要安装系统的磁盘【注意磁盘142G,ESXI会将120G做VMFSL】

u011220233的博客 1万+

POJ 1061青蛙的约会题解

POJ 1061青蛙的约会题解 网上似乎有不少此题的解法。我这个post和其他人的相比主要时想说下面几点。 1. 给出一个试图不死记硬背公式的思路; 2. 谈谈暴力解为什么看起来这么诱人,却无法通过; 3. 一些细节及对此题的评价(个人观点) 原题请参考poj: http://poj.org/problem?id=1061 我认为ACM/ICPC应该给人思维的快乐,甚至带有...

u012403020的博客 1027

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1468

workbench拓扑优化教程_拓扑优化实例-轮毂的优化

拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可...

weixin_39581739的博客 3043

POJ1061

题目链接:http://poj.org/problem?id=1061 解题思路:   设两只青蛙跳了t次以后才会碰面。则有:     x + mt = y + nt + Lk (k为任意整数) (1)     (m - n)t + Lk = y - x (2)   ...

dielie6462的博客 221

clumsy一款模拟弱网的工具

利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果。

klb5555的专栏 2551

POJ 1061青蛙的约会

Problem http://poj.org/problem?id=1061 Solution 题外话:右边是西啊。。。 本题是扩欧的必修题,就打打看了看。 我们设跳了k次碰面。 可得(x+k∗m)−(y+k∗n)=L∗p(p为整数)(x+k*m)-(y+k*n)=L*p(p为整数)(x+k∗m)−(y+k∗n)=L∗p(p为整数) 我们将其化简,可得: (n−m)∗k+L∗p=x−y(n-m)*...

Larry1118的博客 216

MOSFET导通电阻Rdson全解析:物理组成、公式推导与工程选型要点

在功率电子设计中,MOSFET作为核心开关器件,其导通电阻Rdson直接决定导通损耗与系统效率。从半导体物理角度看,Rdson并非单一固定值,而是由源极电阻、沟道电阻、累积层电阻、JFET区电阻、漂移区电阻及衬底电阻等多个分量串联而成,并随栅极驱动电压、结温以及击穿电压等级发生显著变化。理解Rdson的物理来源与数学表达,有助于工程师在低压大电流与高压小电流等不同场景中合理选型、优化驱动电压并准确估算热损耗。文章从沟道电阻公式出发,深入剖析耐压与导通电阻的物理矛盾、温度系数的影响规律,并给出数据手册参数的正

weixin_29163857的博客 197

LeRobot — 基于 PyTorch 的真实世界机器人学习框架(一)- 核心框架模块解析

LeRobot 是一个开源的机器人学习框架,由 Hugging Face 开发,旨在降低机器人学的准入门槛。该框架提供完整的机器学习流程支持,包括数据采集、训练、评估和部署。核心模块涵盖数据集标准化、策略算法、硬件抽象和强化学习组件,采用模块化设计实现灵活扩展。通过集成 Hugging Face Hub,用户可以轻松共享数据集和预训练模型。LeRobot 特别注重真实世界的机器人应用,支持多种前沿算法如模仿学习、视觉语言动作模型等,并提供统一的硬件接口和仿真环境适配。

熊猫小妖的AI世界 171

POJ 1061

/* * poj_1061.c * accepted * refer to: http://www.cnblogs.com/comeon4mydream/archive/2011/07/18/2109060.html */ #include typedef long long int int64; static int64 extGcd (int64 a, int64 b, int64

当年小丑 930

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1540

poj 1061 青蛙的约会

•先让我吐槽一番: 啊啊啊啊啊恶心的数论让我颓了一下午的数论! 数论最恶心,数论最恶心,数论最恶心……重要的事情说三遍! 不管了好不容易懂了一个数论题,赶紧跑来写博客(以后不会了就来):————————萌萌哒分割线———————–<经典问题>poj 1061 青蛙的约会前言: 先来一段exgcd推导: –>对于方程 ax+by=c; –>当且仅当 c=k*gcd(a,b)时,方程有解;

Loi_LXTT 402

SolidWorks速成教程P4-4【装配体 | 第四节】——装配体内修改模型&编辑配合方法&配合报错的解决方法

截止目前已介绍完 SolidWorks装配体的常用功能,但基础薄弱的小伙伴或许对装配体的各类功能还不够熟悉。所以这节将进一步加强装配体的学习,同时介绍新手容易犯的错误。总结出三点,一是装配体内修改模型,二是编辑配合,三是配合报错的解决方法。

嵌入式阿齐Archie 5553

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

POJ 1061 青蛙的约会

POJ 1061 青蛙的约会 题目链接 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,

旺崽的博客 2760

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

POJ1061 青蛙的约会

1 /* 2 POJ1061 青蛙的约会 3 http://poj.org/problem?id=1061 4 扩展欧几里得 5 6 原题为求t使得,存在l满足 7 (x+mt)-(y+nt)=cl 8 即求 9 cl+(n-m)t=x-y 10 * 11 * 12 * 13 */ 14 15 ...

dianan9456的博客 118

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

青蛙的约会 POJ - 1061

http://poj.org/problem?id=1061 两只青蛙是同时跳的 如果两只青蛙的步子一样大 那永远也无法相遇 否则 考虑用拓展欧几里得求(a*x)%b=c的最小非负整数解 将步子之差(m-n)作为a 总长度l作为b 初始距离y-x作为c(注意不能是(x-y))即可 #include <cstdio> #include <cstring> ...

sunyutian1998的博客 244

POJ1061题解

POJ1061题解题意两只青蛙在一维数轴从不同的起点以不同的速度出发,想知道能否在某一点相遇。笺释设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米 青蛙A移动了x+mt,青蛙b移动了y+nt。 也就是要求一个t使得(x+mt) mod l=(y+nt) mod l 转化为求解同余方程(m-n)t=y-x m

SoniciSika 476

poj1061(扩展欧基里德定理)

题目链接:https://vjudge.net/problem/POJ-1061 题意:在一个首位相接的坐标轴上,A、B开始时分别位于X,Y处,每个单位时间向右移动m,n米,问是否能相遇,坐标轴长L。 思路:与poj2115几乎一样,扩展欧基里德模板题。题意即X+m*x=Y+n*x (mod L),x为最短相遇时间,转换后:(m-n)*x+L*y=Y-X (mod L),令a=m-n,b=L,...

weixin_34055910的博客 98

poj1061 青蛙的约会 终于明白了那个%

http://poj.org/problem?id=1061 这题是大多大佬介绍完扩展欧几里得后拿来练习的。于是第一次做的时候就严格按照扩展欧几里得的办法, x = x+k(c/gcd), y = y - k(c/gcd)了。 今天回过头来再看的时候发现还有一种处理负数的办法,就是在最后处理时先取模,再加模,再取模 第一步取模,使得到的答案绝对值小于模,加上模后使得值大于0但小于模 当时...

solego’s blog 250

POJ 1061 不定方程

POJ 1061 题目链接: 题意: A从x出发,每次走m步;B从y出发,每次走n步,两人走的总步数需要余L。问至少走多少步才能相遇,不能相遇则输出Impossible 思路: 解不定方程版题。 不定方程,即ax + by = c,a、b、c为常数,x、y为变量。求其中整数解。 定理:ax + by = c’的所有c’中,得到最小的c’是gcd(a,b),详见算法导论。 故求解方案

beihai2013 355

POJ1061青蛙的约会

poj 1061青蛙的约会  http://poj.org/problem?id=1061  题意:有两只青蛙,一只在坐标x,另一直在坐标y,青蛙x一次跳跃可以前进m单位距离,青蛙y一次跳跃可以前进n单位的距离,两青蛙都在同一纬度,该纬度长度为L。两只青蛙同方向同时跳啊跳,问你最少跳多少次,它们才可以相遇,如果不能相遇,输出impossble 这个题老是纠结正负有没有影响。。答案是没有

mayuqing98的博客 271

poj1061 扩展欧几里得算法

poj1061青蛙的约会 首先要列出关系方程: 由于两个青蛙是往同一个方向跳跃的,所以两只青蛙相遇的时候,一定是一只青蛙比另一只青蛙多跳整数圈数。 设跳跃的次数为t,圈数为p,那么     (x+mt)-(y+nt)=pl 即t(n-m)-pl=x-y 此题就是求t的最小正整数解 其中n-m、l、x-y已知,所以这是一个有两个未知量的不定方程,那么就要用扩展欧几里得算法。 扩展欧几

竹丙丙丙丙 441
上一篇: poj1006
下一篇: poj2891
lulining
博客等级 码龄15年 8粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值