一开始我的dp是这么写的:
ll Dfs(ll u) { ll ans=0,sum=0; for(int i=h1[u];~i;i=e1[i].nxt) sum+=Dfs(e1[i].v); if(vis[u]) ans=minw[u]; else ans=min(minw[u],sum); h1[u]=-1;vis[u]=0; return ans; }
结果一直WA on #3 #4 #8
后来把vis[u]=0提到这个函数外面清空,过了。
vis[u]=0
求解原理。
完整代码