标签:
欧拉路径:每条边经过且只经过一次的路径
欧拉回路:如果从某个点出发,经过且只经过每条边一次,最后又回到这个点的路径
欧拉图:存在欧拉回路的图
图:
平凡图:只含有一个点
重边:两点之间有多条边
自环:从某点出发且不经过其他任何点又回到该点
简单图:没有自环和重边的图
完全图:任何两点之间都有边相连
子图:点和边都小于或等于原图,但这部分点的连接方式都与原图相同
结点的度:关联到结点的边的条数
入度:有向图入边的数目
出度:有向图出边的数目
例题:总共有n个点,给出m组的a,b的值,以为者a,b之间有一条边相连,如何判断这个图是不是欧拉图
for(int i=0;i<m;i++){
cin>>a>b;
deg[a]++;
deg[b]++;}
bool ok=true;
for(int i=0;i<n;i++){
if(deg[i]%2!=0){
ok=false;
break;}}
if(ok)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
例2:给出一个连通的有向图u,问这个图是不是欧拉图
for(int i=0;i<m;i++)
{cin>>u>>v;
out[u]++;
in[v]++;}
bool ok=true;
for(int i=0;i<n;i++){
if(in[i]!=out[i]){
ok=flase ;
break;}
}
if(ok)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
标签:
原文地址:http://www.cnblogs.com/shangjindexiaoqingnian/p/5757824.html