for(int i=1;i<25;i++) for(int j=1;j<=n;j++){ st[j][i]=st[j][i-1]+st[p[g[j][i-1]]][i-1]; g[j][i]=g[p[g[j][i-1]]][i-1]; }
如图,p存的下一个盘子,st存的和,g存的1<<i+j,这样写和真正的lca,用dfs求的有什么区别吗