一个神奇的问题
我一开始考虑的是怎么模拟,但是感觉可能太多,而且怎么模拟“碰头”这个动作?怎么模拟同时移动?
我感觉不靠谱,于是就去看了看讲解视频
啊,果然不是这样做
思路:
1. 碰头转向问题
因为碰头就被传染,所以可以看成两个人碰完头没有转向,反正只区分感染与否,所以没有差别
2. 同时移动问题
因为速度相同,在上一条碰头问题解决之后,移动问题也很简单了。
面前 同方向上的肯定都追不上,因为速度相同嘛
对方向的肯定会遇到,遇到肯定会被传染
身后 对方向的肯定不会被传染,因为转向后肯定追不上
同方向的分两种情况
假如传染源面前有对向的,那么传染源对向的肯定被传染,
而身后同向的肯定会被其对向被传染的传染
假如传染源面前没有对向的,那么身后同向的肯定追不上传染源,不会被传染
然后就变成了一个简单的check问题~
算法真神奇~












网友评论