标签:显示 ace ted 程序 题解 end sam 技术 i++
现在写到欧拉路,理解起来并不算特别困难...吧...
|
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int maxn=0; 7 int tail=0; 8 int flag=0; 9 int f,ss; 10 int sta[510]={}; 11 int sum[510]={}; 12 int woc[510][510]={}; 13 int mos[510][510]={}; 14 int cun[510]={}; 15 void mydfs(int x,int k){ 16 for(int i=1;i<=mos[x][0];i++){ 17 int w=mos[x][i]; 18 if(woc[x][w]!=0){ 19 woc[x][w]-=1; 20 woc[w][x]-=1; 21 mydfs(w,k+1); 22 cun[ss--]=w;//这个--肥肠重要,嗯我也不会解释,复习的时候看着理解好了 23 if(ss==1){ 24 for(int i=2;i<=f+1;i++){ 25 cout<<cun[i]<<endl; 26 } 27 } 28 } 29 } 30 } 31 int main(){ 32 cin>>f; 33 ss=f+1; 34 for(int i=1;i<=f;i++){ 35 int x,y; 36 cin>>x>>y; 37 if(x>maxn){ 38 maxn=x; 39 } 40 if(y>maxn){ 41 maxn=y; 42 } 43 sum[x]++; 44 sum[y]++; 45 mos[y][++mos[y][0]]=x; 46 mos[x][++mos[x][0]]=y; 47 woc[x][y]+=1; 48 woc[y][x]+=1; 49 } 50 for(int i=1;i<=maxn;i++){ 51 if(mos[i][0]!=0){ 52 sort((int*)mos+510*i+1,(int*)mos+510*i+mos[i][0]+1); 53 } 54 } 55 int f1=0; 56 for(int i=1;i<=500;i++){ 57 if(sum[i]%2==1){ 58 f1=i; 59 break; 60 } 61 } 62 if(f1!=0){ 63 cout<<f1<<endl; 64 mydfs(f1,0); 65 } 66 else{ 67 cout<<1<<endl; 68 mydfs(1,0); 69 } 70 return 0; 71 }
标签:显示 ace ted 程序 题解 end sam 技术 i++
原文地址:http://www.cnblogs.com/137shoebills/p/7783555.html