没有大佬看吗
by Nibelungen @ 2017-10-25 18:04:43
应该f更新完了之后
sum+=now;
要不然改变了sum
对于这一段
```
for(int z=0;z<=sum;z++)
for(int j=1;j<=now;j++)
dp[fa][z]=max(dp[fa][z],dp[fa][z-j]+dp[v][j]-tree[i].w);
```
会有影响
所以要放到它后面
```
int sum=0;
for(int i=h[fa];i;i=tree[i].lst){
int v=tree[i].v;
int now=dfs(v);
for(int z=0;z<=sum;z++)
for(int j=1;j<=now;j++)
dp[fa][z]=max(dp[fa][z],dp[fa][z-j]+dp[v][j]-tree[i].w);
sum+=now;
}
return sum;
```
by yihhhhhhh @ 2018-05-28 14:47:49