老鼠以固定速度v从x0点出发沿x轴前进,v为 单位是n unit/s, x0是非负整数。猫可以走任意非负整数长的距离,走到点上可以知道老鼠在与不在这个点,但不能知道老鼠在该点的前方还是后方。问:如果设计猫的策略来保证猫一定可以抓到老鼠。
解答:其实这题考的是穷举罗列。先简化一下题干,如果x0=0,如何设计猫的策略。答:让猫一次探测1,4,9,16,25.。。。肯定能在某个n平方处逮到老鼠。原理就是罗列:假设v=1,那么在t=1时,老鼠和猫都是到了x=1处。如果v !=1,那么我们假设v=2,那么在t=2时,猫和老鼠同时到了x=4处,以此类推。现在,回到原始问题,如果x0不知道,如何设计呢?其实还是罗列,只是现在罗列的项目包含两维了,x0和v,于是我们可以这么做:先限定我们只找x0<=10和v<=10的情况,所以我们依次1,4,9,16.。。。100。如果没有hit,那么我们下一个点就找12(1*11+1, 假定v=1,x0=1,第11次老鼠走), 26(2*12+2,假定v=2,x0=1,第12次老鼠走),。。。。直到201(10*20+1),之后以此类推。就可以判定在x0<=10 并且v<=10的情况下,猫是否能抓到老鼠。如果没hit,那么继续10-20(依次升级x0和v)的区间。