如果你在dfs这样写:
ll dfs(int u,int fa){ ll s=0x3939393939393939; if(!fg[u]){ s=0; for(int i=vt.h[u];i;i=vt.e[i].next){ int v=vt.e[i].to; if(v==fa) continue; s+=dfs(v,u); } } vt.h[u]=0; return min(s,mn[u]); }
注意,有一些节点无法被清空。