本题可以考虑dfs序将树映射到顺序表上,这么做方便线段树操作一个节点和他的所有子孙节点,注意是所有子孙节点。 这时考虑一个问题,如果一下子把所有元素都映射上去,并不能依赖线段树解决涉及深度浅节点的询问。 可以将深度深的节点对应的顺序表元素先置0,等需要它了再放进去,这就需要dfs预处理顺序表(即线段树专用表)和节点的映射关系,同时也要处理每个节点的子孙节点的个数,这两步操作类似传统树链剖分题的与处理环节。 从涉及深度浅的查询开始下手,假设查询是节点x开始往后y步,遂que(1,n,1,pos[x],pos[x]+num[x]-1)查询节点x的所有子孙节点中的最大值,注意这时深度大于y的x的子孙...