怎么理解,求大佬分析
void dfs(int x,int f)//DFS搜索 { p[x]=a[x]; for(int i=e[x].lst;i;i=e[i].nxt) if(e[i].to!=f) { dfs(e[i].to,x); p[x]+=p[e[i].to]; if(i%2)ans[e[i].id]=p[e[i].to]; else ans[e[i].id]=-p[e[i].to]; } }