树形DP+单调队列优化DP 好题(也是神题……玛雅我实在是太弱了TAT,真是一个250) 完全是抄的zyf的……orz我还是退OI保平安吧 第一步对于每一天求出一个从第 i 个点出发走出去的最长链的长度,树形DP解决…… g[x][0]表示从x的子树中,x到叶子的最长链,g[x][1]表示次长链.(用儿子更新父亲) f[x]表示从x向上走到某个父亲,再向下的最长链.(用父亲更新儿子) 这个DP是通过两次从根出发的dfs实现的. 那么我们现在就得到了a[i]=max(f[i],g[i][0])表示…