一個有向圖存在歐拉路:
在有向圖中,如果圖是弱連通的,並且圖中除開兩個頂點,其他所有頂點的入度等於出度,並且這兩個點中,一個點入度比出度多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