码迷,mamicode.com
首页 > 其他好文 > 详细

一笔画判断

时间:2020-06-10 20:50:53      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:col   起点   内存限制   esc   连接   遍历   namespace   output   ret   

一笔画判断
时间限制:1秒 内存限制:128M
题目描述
如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。 根据一笔画的两个定理,如果寻找欧拉回路,对任意一个点执行深度优先遍历;找欧拉路,则对一个奇点执行dfs,时间复杂度为O(m+n),m为边数,n是点数,题目保证该图连通,即从任何一点出发经过有限条路可以到达任何一点。
输入描述
第一行n,m,有n个点,m条边,以下m行描述每条边连接的两点。0<n<1000。
输出描述


有欧拉路输出“此图存在欧拉路,可一笔画成”,存在欧拉回路输出“此图存在欧拉回路,可一笔画成”,既不存在欧拉路也不存在欧拉回路,输出“此图无法一笔画成”

样例
输入
5 5
1 2
2 3
3 4
4 5
5 1
输出
此图存在欧拉回路,可一笔画成

#include<iostream>
using namespace std;
int main()
{
int n,m,s=0,i,c[1001]={0};
int a,b;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>a>>b;
c[a]++;
c[b]++;
}
for(i=1;i<=n;i++)
{
if(c[i]%2!=0)
{
s++;
}
}
if(s==2)
{
cout<<"此图存在欧拉路,可一笔画成";
}
else if(s==0)
{
cout<<"此图存在欧拉回路,可一笔画成";
}
else
{
cout<<"此图无法一笔画成";
}
return 0;
}

一笔画判断

标签:col   起点   内存限制   esc   连接   遍历   namespace   output   ret   

原文地址:https://www.cnblogs.com/tcwbob/p/13088437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!