拓撲排序模板

在有向無環圖中,通過找拓撲序,可以從頭到尾轉移狀態,比spfa少走了許多邊。

記錄每個點的入度,每次遇到一個點其入度-1,直到入度爲0,變成起始點。

void tuopu()
{
	queue<int>Q;
	for(int i=1;i<=n;i++)
	{
		if(in[i]==0)
		{
			Q.push(i); 
		}
	}
	while(!Q.empty())
	{
		int u=Q.front();
		Q.pop();
		for(int i=head[u];i!=-1;i=edge[i],next)
		{
			int v=edge[i].to;
			in[v]--;
			if(!in[v])
			{
				Q.push(v);
			}
		}
	}
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章