如果你只过#2 dp时候内层循环限制为j<=l-nw[x] 而非 j<=l,不然可能无法保证一定选父亲
for(int l=m;l>=nw[x];l--){ for(int j=0;j<=l-nw[x];j++){ f[x][l]=max(f[x][l],f[x][l-j]+f[e[i].to][j]); } }