欧拉图
欧拉图:具有欧拉回路的图叫做欧拉图
欧拉回路:从起点出发,每条边有且只经过一次,最终回到起点的路径
欧拉通路:从起点出发,每条边有且只经过一次,不要求回到其点的回路
半欧拉图,拥有欧拉通路,但不用有欧拉回路的图叫做半欧拉图
判断方法
此外判断一个图是否立连通可已使用并查集
求欧拉回路的方法
const int maxn=1e3;
int mp[maxn][maxn],ans[maxn];
int cnt=0;
void dfs(u)
{
for(int i=1;i<=n;i++)
{
if(mp[u][i]!=0)
{
int t=mp[u][i];
mp[u][i]=0;
dfs(v);
ans[cnt++]=t;
}
}
}
一位学姐的代码
对于fluery算法求欧拉回路,我自己还不会,太菜了
哈密顿图
Dirac定理: 无向图,有 N 个节点,若所有节点的度数都大于等于 N/2,则哈密顿回路一定存在。注意,“N/2” 中的除法不是整除,而是实数除法。如果 N 是偶数,当然没有歧义;如果 N 是奇数,则该条件中的 “N/2” 等价于 “⌈N/2⌉”
竞赛图:有向图,每对顶点之间都有一条边相连的有向图