【一本通提高篇欧拉回路】欧拉回路1 题解
题目
思路:
Code
#include <iostream>
#include <cstring>
using namespace std;
const int maxn=1005;
int visit[maxn],d[maxn][maxn],degree[maxn];
int n,m;
void dfs(int s) //判断图是否联通
{
visit[s]=1;
for(int i=1;i<=n;i++)
{
if(d[s][i]&&!visit[i])
dfs(i);
}
}
int main()
{
ios::sync_with_stdio(false);
while(cin>>n&&n)
{
memset(visit,0,sizeof(visit));
memset(d,0,sizeof(d));
memset(degree,0,sizeof(degree));
cin>>m;
int a,b;
for(int i=0;i<m;i++)
{
cin>>a>>b;
d[a][b]=d[b][a]=1;
degree[a]++;
degree[b]++;
}
dfs(1);
bool flag=true;
for(int i=1;i<=n;i++)
{
if(!visit[i])
flag=false;
if(degree[i]%2!=0)
flag=false;
}
if(flag)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}
return 0;
}
本文作者:BadBadBad__的博客
本文链接:https://www.cnblogs.com/BadBadBad/p/OuLaHuiLuA.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步