Ants【巧妙的思路】

蚂蚁问题的解决关键在于避免指数级复杂度的暴力搜索。最短时间解决方案是让每只蚂蚁朝离它较近的端点前进。对于最长时间,通过分析两只蚂蚁相遇和调头的过程,发现它们的总路程实际上等于它们沿初始方向走到端点的路程。因此,蚂蚁之间的区别并不影响结果,可以视为继续沿原路行走。
摘要由CSDN通过智能技术生成

1.6.2 Ants

题目

在这里插入图片描述

原始思路

最关键的是每只蚂蚁的朝向未知,显然,不可能用暴搜,指数级的复杂度;
所以这道题目一定要想出某个把问题简化的方法,而不是一个个去尝试答案;
最短时间很好想,让每只蚂蚁都朝着更近的端点走就好了,不会发生相遇折返的情况;
最长时间呢?一开始没有想出来,因为陷在了复杂的相遇、调头,再相遇……的过程中;但是回过头来想,整个过程显然不能直接模拟!!!

正确题解

比如先考虑两只蚂蚁,位于x1,x2;1往右,2往左;先相遇,再调头,掉下去;蚂蚁1的总路程为x1+2*(x2-x1)/2=x2;蚂蚁2的总路程为L-x2+2*(x2-x1)/2=L-x1;其实这两个路程就是他们各自沿着初始方向走到端点所需要的路程(只不过看似换成了另一个蚂蚁完成);但是我们只需要得到最长的时间就可以了,和哪一只蚂蚁走出来的没有关系!
所以其实,蚂蚁之间并没有区别!!!
相遇之后看似两只蚂蚁调了头,其实完全可以看成是蚂蚁沿着原路在走。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值