警示后人(如果你 64pts 且 WA on #4 #5 #7)
查看原帖
警示后人(如果你 64pts 且 WA on #4 #5 #7)
511959
_Weslie_楼主2024/8/9 13:34

注意一下在拓扑排序建边时有没有注意去重。

并且:

//g[k] 是指包含 k 的强连通分量所含有的点
//bel[i] 指 i 属于哪个连通块
for(int k=1; k<=n; k++) {
		if(g[k].size()==0)continue;
		memset(vis,0,sizeof(vis));
		for(int i=0; i<g[k].size(); i++) {
			for(int j=head[g[k][i]]; j; j=e[j].nxt) {
				if(k!=bel[e[j].v]&&!vis[bel[e[j].v]]) {
					add2(k,bel[e[j].v]);
					vis[bel[e[j].v]]=1;//一定是 bel[e[j].v]!!!!!
				}
			}
		}
	}
2024/8/9 13:34
加载中...