[面试题] 蚂蚁蚂蚁

来源:互联网 发布:dht12数据手册 编辑:程序博客网 时间:2024/06/09 23:12
题目:

有一根长为Lcm的棍子,蚂蚁以1cm/s的速度在上面爬行,爬到两端就会从棍子上掉下,当两个蚂蚁相向爬行碰到即往相反方向爬行。知道所有蚂蚁离棍子左端的距离x[i],但蚂蚁的爬行方向随机,求所有蚂蚁掉落的最小时间和最大时间。


分析:

最短时间:

显然当所有蚂蚁向离棍子顶端最近的方向爬时时间最短,且没有蚂蚁会碰到彼此。

最长时间:

首先我们看蚂蚁相向而行碰到掉头的情况和直接交错不掉头的情况区别:


可以看到两种情况经过的路线长度总和完全一样。

而每次相碰都可以看作独立时间。故总时间最长为所有蚂蚁向离棍子顶端最远的方向爬行的情况。


0 0