返回信息流象棋马走日问题,如何在O(1)的复杂度下求出起始点走到目标点所需的步数,当时写了个BFS的解法,问了下复杂度然后问怎么优化,说是有公式,让感兴趣研究一下,无奈想不明白特来求助。。希望能指点一下迷津
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #93201同步于 2017/5/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
面试遇到 的一个问题,优化时间复杂度方面的,求解
cbyrw
2017/5/16镜像同步23 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如果是从原点跳,目标点坐标是(a,b)的话,应该是 n1 + 2*n2 = a 2*n1 + n2 = b 两个相加得到总步数 n1 + n2 = (a+b)/3,是这样吗?只是这样的话如果a+b不能整除3怎么办呢?
【 在 chenxiansf 的大作中提到: 】
: 只有两种走法,解二元方程组吧
为什么不把n1和n2解出来呀
【 在 cbyrw (cbyrw) 的大作中提到: 】
: 如果是从原点跳,目标点坐标是(a,b)的话,应该是 n1 + 2*n2 = a 2*n1 + n2 = b 两个相加得到总步数 n1 + n2 = (a+b)/3,是这样吗?只是这样的话如果a+b不能整除3怎么办呢?
比如说从(0,0)跳到(2,2)解不出整数解哎,感觉是要再加两个式子,负向的正着的“日”和躺着的“日”
【 在 chenxiansf 的大作中提到: 】
: 为什么不把n1和n2解出来呀
想了下,感觉整除不了可以加4,或者加8,但还要考虑比例在1:2到2:1之间
【 在 chenxiansf (影自南飞) 的大作中提到: 】
: 为什么不把n1和n2解出来呀
当坐标比例不在1:2到2:1之间,或不能整除3时,若长边不小于4,可对短边加2,否则可以选择对短边加4,或两边各加2,直到满足条件。最后把横纵坐标加起来,除以3得结果
【 在 cbyrw (cbyrw) 的大作中提到: 】
: 象棋马走日问题,如何在O(1)的复杂度下求出起始点走到目标点所需的步数,当时写了个BFS的解法,问了下复杂度然后问怎么优化,说是有公式,让感兴趣研究一下,无奈想不明白特来求助。。希望能指点一下迷津
: --
a + b + 2c+2d = x
2a-2b + c - d = y
求|a| + |b| + |c| + |d| 的最小值
a, b, c, d均为整数, 想不出有什么好方法
四维空间中两个三维空间相交, 生成的是一个二维空间, 在这个面上找整数点, 距离原点的曼哈顿距离最短.