问题描述
问题分析
智商题
n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间。
似乎对照书打一遍毫无意义啊……-.-
反正是统计 就当做休息一下啦
作为《挑战程序设计竞赛》中第一道比较正规的题
刚开始想的时候对这本书的难度惊呆了-_-
感叹智商不够
然后这个就是
关键就是想到蚂蚁的运动都可以理解为单独运动的
所以求时间最短时只需要找
离左端点或右两端点最远的那个蚂蚁(最靠近中间朝向更近的边)
(果然一个木桶能装多少水取决于最短的那个木板嘛)
求时间最长时只需要找
离左端点或右两端点最远的那个蚂蚁(最靠近端点朝向更远的边)
所以代码就很好写了
|
|
果然考验智商……
又回忆一遍……发现还是有点脑抽……
-.-
用了C++的代码方式
也算先体验一把~
题目地址:【POJ】[1852]Ants