北大POJ题目

编程入门 行业动态 更新时间:2024-10-25 05:17:34

<a href=https://www.elefans.com/category/jswz/34/1766514.html style=北大POJ题目"/>

北大POJ题目

   今天在北大POJ上做到一道题——青蛙的约会,连续研究了数个小时,提交了共有50多次,每次都是以wrong anwser或是Time Limit Exceeded被打了回来。后来没吃晚饭,当看到最后一次显示“Accepted”时,内心的焦躁瞬间舒展开来了。

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

Output

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

 

  

   这里可以有两种方法,第一种稍微好理解一些,不过让人感觉诧异的是同样的算法,C++实现的结果是 Time Limit Exceeded,而换做C语言却通过了对POJ的提交。这也就不得不说明C语言虽然功能更为单调,但是由于更接近底层操作,它的运行速度仍是一大优势。

 

      方法一分析:  两只青蛙的初位移差:x-y,跳跃能力差值m-n。简单的相对性的原理,我们便可以假设是一只青蛙在跳,跳跃能力是m-n;初始位置x-y;即理解为一只青蛙从x-y位置开始,以m-n的跳跃能力,能否在若干次跳跃后回到0点上。分析一下下就会想到,如果不能,这只青蛙将会以某种规律在除原点外的一些点上循环跳下去。那么我们就以青蛙每过一次跳经原点后距离远点大小为标记,如果有一次恰好跳在原点上,那么就得出了答案,如果若干次后,它不但没有跳到原点上,

更多推荐

北大POJ题目

本文发布于:2024-03-09 13:40:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725128.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:北大   题目   POJ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!