hdu 1116 欧拉路

2014-11-24 08:35:59 · 作者: · 浏览: 0

一个有向图存在欧拉路:

在有向图中,如果图是弱连通的,并且图中除开两个顶点,其他所有顶点的入度等于出度,并且这两个点中,一个点入度比出度多1,另一个点出度比入度少1,那么该图存在欧拉路,这是个充要条件。


这个题中还要判断是是否连通,用并查集 记录判断下即可。


#include
  
   
#include
   
     #include
    
      using namespace std; int in[50],out[50]; int root[50]; void init() { for(int i=0;i<=25;i++){ root[i]=i; } } int find(int x) { int temp=root[x]; if(x==root[x]) return x; else{ return root[x]=find(root[x]); } } int main() { int t; scanf("%d",&t); while(t--){ int n,i; init(); memset(in,0,sizeof(in)); memset(out,0,sizeof(out)); char s[2000]; scanf("%d",&n); getchar(); for(i=0;i