http://210.44.14.31/problem/show/1088
题目标题:欧拉路
题目大意:判断一个图能不能形成一个欧拉路
判断欧拉路的条件是所有点的入度与出度是否相等,如果相等就是欧拉路,除了起始点和终点是出度与入度相差1,只要知道了这个判定条件,这个题还是不难的
#include<iostream>
#include<stdio.h>
using namespace std;
int a[1010][1010]={0};
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
a[x-1][y-1]=1;
}
int sign=1;
int esign=0;
for(int i=0;i<n;i++){
int sum1=0;
int sum2=0;
for(int j=0;j<n;j++){
sum1+=a[i][j];
sum2+=a[j][i];
}
if(sum1-sum2==1 || sum2-sum1==1) esign++;
else if(sum1!=sum2){
sign=0;
break;
}
if(esign==3 || (sum1==0 && sum2==0)){
sign=0;
break;
}
}
if(sign==1) cout<<"YES";
else cout<<"NO";
return 0;
}