青蛙约会

  • 欧几里得算法
  • 个人想法
  • 代码实现

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

欧几里得算法

(x+m*t) - (y+n*t) = L * ll 其中ll是两只青蛙跳的圈之差。

个人想法

首先求出两只青蛙的速度差v = x - y,即每跳一步两者之间的距离差,用两只青蛙之间的距离
l = m - n来整除v,如果能够整除那么就可以在一定步数之后相遇,如不能,没关系,可以加圈
数,但是不能无限加下去,加到v 圈之后不能再加了,在v圈之后再加一圈相当于只加一圈,因
为(l + v*L)// v = l。

代码实现

很惭愧没有过oj,但是带入近20个值都没有问题。

/*
2020 09 17
青蛙约会问题
*/#include<iostream>
#include<string>
using namespace std;long long func(long long sub,long long subL, long long L);int main(){long long f1,v1,f2,v2,L;cin>>f1>>f2>>v1>>v2>>L;if(f1>f2){if(v1>v2){long long x = func(v1-v2,f2-f1+L,L);if(x != -1)cout<<x<<endl;else cout<<"Impossible"<<endl;}else{long long x = func(v2-v1,f1-f2,L);if (x != -1)cout << x<<endl;elsecout << "Impossible" <<endl;}}else{if(v1>v2){long long x = func(v1-v2,f2-f1,L);if (x != -1)cout << x <<endl;elsecout << "Impossible" <<endl;}else{long long x = func(v2-v1,f1-f2+L,L);if (x != -1)cout << x <<endl;elsecout << "Impossible" <<endl;}}return 0;
}long long func(long long sub,long long subL, long long L){for(long long i = 0; i <sub; i++){if((i*L+subL)%sub == 0)return (i*L+subL)/sub;}return -1;
}

2020 9 17POJ青蛙约会相关推荐

  1. 问题 A: 青蛙约会(数学)

    问题 A: 青蛙约会 时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 两只青蛙在一个点,但是他们想要来个久别胜新婚的约会,于是他们出发,朝同一个方向绕圈跳,我们 ...

  2. vijos P1009清帝之惑之康熙

    </pre>背景康熙是中国历史乃至世界历史中最伟大的帝王之一,清除螯拜,撤除三藩,统一台湾,平定准葛尔叛乱:与此同时,出众的他也被世界各国遣清使臣所折服.康熙是历史上少有的全人,不仅文武兼 ...

  3. 凌云版c语言程序设计与实践答案,C语言程序设计与实践 凌云,吴海燕,谢满德著 9787111310075...

    商品描述: 基本信息 书名:C语言程序设计与实践 原价:33.00元 作者:凌云,吴海燕,谢满德 编著 出版社:机械工业出版社 出版日期:2010-9-1 ISBN:9787111310075 字数: ...

  4. P1516 青蛙的约会 [exgcd]

    P1516 青蛙的约会 题意:在一个长为\(l\)的环上面有两只青蛙,一只出发点为\(x\),一次跳\(m\),另一只出发点为\(y\),一次跳\(n\),求相遇时间. 这个长为\(l\)的环不难想到 ...

  5. POJ 1061 青蛙的约会(扩展欧几里得)

                                                                   青蛙的约会 Time Limit: 1000MS   Memory Lim ...

  6. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)

    POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法) 手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn ...

  7. 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)

    青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问 ...

  8. 数论:扩展欧几里德(洛谷P1516 青蛙的约会)

    欧几里德 基本思想:gcd(q,r)=gcd(r,q%r); 证明,设q.r的最大公因数为a,则q=xa,r=ya,xy互质 不妨设x>y(显然如果小于会在一次gcd运算后交换) 则q%r=(x ...

  9. 1477: 青蛙的约会

    1477: 青蛙的约会 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 261  Solved: 164 [Submit][Status][Discuss ...

最新文章

  1. [Ubuntu] SVN常用的批量操作
  2. codeforces 711B - Chris and Magic Square(矩阵0位置填数)
  3. 电子计算机信息工程都是做什么的,电子信息工程专业将来干什么 就业前景好不好...
  4. Spring Boot 最佳实践(一)快速入门
  5. 直播预告丨统一便捷的数据操作平台CloudQuery年终发布!
  6. 关于:win远程桌面连接命令怎么用
  7. 网站建设如何选择CMS网站系统
  8. 【c++入门(2)】完全背包
  9. 今日金融词汇---前复权,是什么?
  10. 使用async.whilst要注意的地方
  11. 工欲善其事必先利其器(一) —— VScode
  12. 6行代码实现js打印表格
  13. flutter中App签名
  14. 你可能没有细究过的TCP/IP
  15. putty之pscp用法
  16. IP地址分配和IP地址的划分
  17. UserGuide-i3wm默认绑定简明说明
  18. 16 个动态图!一款好用到爆的 Python 可视化利器
  19. java 金额比较大小写_Java金额大小写的转换方法
  20. 哈工大2021 形式语言与自动机期末

热门文章

  1. Delaunay 三角剖分2D(原理 + 源码)
  2. 成熟的B端产品经理,都有这个能力
  3. 语音识别-特征提取 (一)
  4. 大众点评Cat--架构分析
  5. Python_001_旅游评论情感倾向性分析_000_分析(基于深度学习的微博评论情感倾向性分析_胡西祥)论文
  6. C#属性简写用法 {get;set}
  7. 【英语学习工具】解说 LeHoCat 提供免费的 视频集制作工具 使用方法, 看视频学英语的制作工具, 制作英语教学课件的工具, 帮助自学英语(详细图文解说)
  8. 永恒之蓝(MS17-010)漏洞复现及msf常用渗透命令
  9. java豆瓣查书api_如何通过豆瓣API获取图书和电影列表
  10. 微信公众号里如何上传html,微信公众号怎么做表单,微信万能表单如何添加到公众号里...