可以近似看做只往右、上两个方向移动,2 ** 24 不至于算不出来,不过 1s 肯定不够。
按照最远可以走多远的话,走 N 步,相当于从 (1,0) 往右侧一个等腰直角三角形内所有的点,再加上 x=0 线上全部的点,没算错的话,应该是
25 * 13 + 24 = 349
(0,0) 到这 349 - 26 - 2 个点(边缘上的点不用求肯定能到,(0,0) 和 (1,0) 两个点可以排除肯定不能到)。按照优先队列的话 O(N * log(N)) * 321,理论上40k以内应该能求出解来。做点儿优化的话,1s 应该问题不大。
另外感觉这道题很可能一个函数式直接常数求解,因为 O(2 * N) 等于以 O(N) 的解为原点,再求一个 O(N)。如果能证明 O(N) 的解为边缘以内除 (0,0) 和 (1,0) 所有的点,那就不难证明 O(2*N) 也能覆盖所有的点
【 在 stub 的大作中提到: 】
: 25普通机器可能算不出来
--
FROM 203.184.25.*