1380 一笔画问题

如果一个无向图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define N 510
int g[N][N],d[N],c[N],n,m,reckon,oddity_point,lt;
void dfs(int i)
{
    for(int j=1;j<=n;j++)
    {
        if(g[i][j]==1)
        {
            g[i][j]=0;
            g[j][i]=0;
            dfs(j);
        }
    }
    c[++reckon]=i;
    
    return;
}
int main()
{
    cin>>n>>m;
    int x,y;
    memset(g,0,sizeof(g));
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y;
        g[x][y]=1;
        g[y][x]=1;
        d[x]++;
        d[y]++;
    }
    int z=1;
    for(int i=1;i<=n;i++)
    {
        if(d[i]%2==1)
        {
            z=i;
            oddity_point++;
        }
        if(d[i]==0)
        {
            lt++;
        }
    }
    dfs(z);
    if(oddity_point!=2&&oddity_point!=0)
    {
        cout<<"NO";
        return 0;
    }
    if(lt!=0)
    {
        cout<<"NO";
        return 0;
    }
    for(int i=1;i<=reckon;i++)
    {
        cout<<c[i]<<" ";
    }
    return 0;
}
相关推荐
木井巳24 分钟前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
心抵鹊42 分钟前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥1 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
shehuiyuelaiyuehao1 小时前
算法34,位运算符操作,总结
算法
Navigator_Z1 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
Navigator_Z2 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode
FOORIR2 小时前
3D视觉+AI客流系统怎么做:从Sensor Pipeline到数据事件引擎
算法
Omics Pro4 小时前
Arc研究所Cell|全新虚拟细胞官方基准评测框架
大数据·人工智能·深度学习·算法·机器学习
CoderYanger6 小时前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
小雨笙笙6 小时前
机器学习:评估模型与选择
人工智能·算法·机器学习