最后一次翻动前必然是 3up,7down. 第一次翻动后的结果也必然是 7up,3down. 那么问题就变了:
[10, 0] -> [3,7] -> 翻转n次 -> [7,3] -> [0,10].
注:[up, down]
假设是n = 1. 则在当前是[3, 7]下,只有以下4种情况
(-3,-4) => [4, 6] ,
(-2,-5) => [6, 4],
(-1,-6) => [8, 2],
(-0,-7) => [10, 0];
可以看出n = 1,不成立及 (-x, -y) => [3-x +y, 10 - (7-x +y)] && x + y = 7 && x 小于等于 up, && y 小于等于 down.
那么 n = 2,
对 [4, 6] 使4 - x + y = 7成立. 则 y - x = 3; => (x=2 ,y=5), nice
对 [6, 4] 使6 - x + y = 7成立, 则 y - x = 1; => (x=4 ,y=3), nice
...
所以解就是
最少需要4(2+2)次.
步骤是 [10, 0] -> [3,7] -> [4, 6]/[6, 4]/... -> [7,3] -> [0,10]. |