树形dp模板
void dfs(int x)
{
vis[x] = 1 ;
for(int i = head[x] ; i ; i = edge[i].nxt)
{
int v = edge[i].to ;
if(vis[v]) continue ;
dfs(v) ;
dp[x][1] += dp[v][0] ;
dp[x][0] += max(dp[v][0], dp[v][1]) ;
}
return ;
}

浙公网安备 33010602011771号