DFS一定要int vis数组剪枝!而且是分叉前就要剪。
if(x+k[x]<=n&&vis[x+k[x]]>step+1) dfs(x+k[x],step+1); if(x-k[x]>=1&&vis[x-k[x]]>step+1) dfs(x-k[x],step+1);