欧拉回路

之前的似乎有误,重写了

无向图欧拉回路,圈套圈模板,复杂度线性
其实就是DFS整个图,并在回溯时记录。
需要保证存在欧拉回路

void dfs(int u)
{
	for(int &i=fr[u];i!=-1;i=ne[i])
	{
		if(bk[i/2])
			continue;
		bk[i/2]=true;
		int a=u,b=v[i];
		dfs(v[i]);
		lu[ls]=a;lv[ls++]=b;
		if(i==-1)break;
	}
}

由于使用当前弧优化,dfs之后i值可能会改变,因此需要提前把2个端点记下来。

欧拉回路计数:BEST定理
以出发点为根树形图数×(每个点度-1)!×出发点度

posted @ 2019-07-25 20:15  lnzwz  阅读(216)  评论(0编辑  收藏  举报