dp[x] = 0; for (int i = tail; i >= 1; i--)//找到当前没有选过的最长链,向上传递(其实也就是把链看成是当前点对上面点的贡献) if (tag[i] != x) { dp[x] = que[i]; break;
这是第一篇题解里dfs里更新节点权值的一段。 蒟蒻不懂为什么要有dp[x]=0.dp初始不就是0么(删掉这句话wa了好多点)