POJ 1041 求解欧拉回路方案

2014-11-24 11:46:30 · 作者: · 浏览: 0

这题模板太神了……几乎不用自己再写什么,只要把图建好就行了……

对了,刚才做了后琦神说了欧拉回路了汉密顿回路才记得其区别:欧拉回路是一笔画问题,即边走且只走一次;而汉密顿回路是点走且只下次一次。

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
          
            #include 
           
             #include 
            
              #include 
              #include 
              
                #include 
               
                 #define PI acos(-1.0) #define mem(a,b) memset(a,b,sizeof(a)) #define sca(a) scanf("%d",&a) #define sc(a,b) scanf("%d%d",&a,&b) #define pri(a) printf("%d\n",a) #define lson i<<1,l,mid #define rson i<<1|1,mid+1,r #define MM 1000005 #define MN 2000 #define INF 1000000009 #define eps 1e-7 using namespace std; typedef long long ll; int f[MN]; vector
                
                 path; vector< pair
                 
                   >adj[MN]; bool vis[MM]; int find(int x) { return x==f[x] x:f[x]=find(f[x]); } void add(int x,int y,int z) { adj[x].push_back(make_pair(z,y)); adj[y].push_back(make_pair(z,x)); } void dfs(int u) { for(int i=0; i