dfs函数里面:
/*
dp[i][j]:
当j为0时,表示i不去。
当j为1时,表示i去。
son[i][j]:i是j的父亲节点。
*/
inline void Dfs(int x)
{
dp[x][0]=0;
dp[x][1]=r[x];
for(register int i=0;i<son[x].size();i++)//枚举x节点所有的儿子
{
int y=son[x][i];//y是x的一个儿子
Dfs(y);
dp[x][0]+=max(dp[y][0],dp[y][1]);
dp[x][1]+=dp[y][0];
}
}
这一句:
dp[x][0]+=max(dp[y][0],dp[y][1]);
dp[x][1]+=dp[y][0];
是什么意思