链接:http://codeforces.com/contest/1006/problem/E
给一棵$n$个节点的树和$q$次询问,每次询问两个数$u、k$,表示第u个节点的第k个前序遍历的结果是谁。
这么水的题竟然放在了E,可能这就是div 3吧…
dfs一遍,维护出每个节点$i$的前序遍历的次序$ret_i$,以及该节点的子树中共计多少个节点$sz_i$,可以利用$ret_i$维护出第$j$号遍历的节点是$id_i$。当我们要求的某节点开始往后数$k$个数不存在时,输出-1;否则我们的答案就是$ret[id[u]+k-1]$。
1 |
|