在dp的时候,你大概率是这样dp的:
for(int i=1;i<=scc;++i){ int u=tpp[i]; dp[u]=max(dp[u],val[u]);//这里 for(auto v:g[u]){ dp[v]=max(dp[v],dp[u]+val[v]); } }
这里必须取一个max,因为不然在后续的dp过程中会被初始化覆盖。