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;
}
相关推荐
小白程序员成长日记34 分钟前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
16_one1 小时前
autoDL安装Open-WebUi+Rag本地知识库问答+Function Calling
人工智能·后端·算法
散峰而望3 小时前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github
q***95223 小时前
SpringMVC 请求参数接收
前端·javascript·算法
初级炼丹师(爱说实话版)3 小时前
多进程与多线程的优缺点及适用场景总结
算法
hetao17338373 小时前
2025-11-25~26 hetao1733837的刷题记录
c++·算法
历程里程碑3 小时前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
少许极端4 小时前
算法奇妙屋(十四)-简单多状态dp问题
算法·动态规划·图解算法·简单多状态dp·打家劫舍问题·买卖股票问题全解
2301_823438024 小时前
解析论文《复杂海上救援环境中无人机群的双阶段协作路径规划与任务分配》
人工智能·算法·无人机
embrace995 小时前
【C语言学习】结构体详解
android·c语言·开发语言·数据结构·学习·算法·青少年编程