bug真是个神奇的东西;看这道题,求最值,也没什么数据结构可言,就考虑dp;树形dp一般只有两种形式;f[i]表示以i为根的子树,到达i结点的最大值(这里没包含i) #include<bits/stdc++.h> using namespace std; const int maxn=1000010; const int inf=-0x3f; int head[maxn],cnt,val[maxn],ans,f[maxn]; struct edge{ int nx,to,w; }edge[maxn*2]; void add(int u,int v,int w) { ...