遍
      
    
    
      
        历子集树需O(2n)计算时间 
        
        void backtrack (int t)
        
        {
        
         if (t>n) output(x);
        
         else
        
         for (int i=0;i<=1;i++) {
        
         x[t]=i;
        
         if (legal(t)) backtrack(t+1);
        
         }
        
        }
      
    
  
    
      
        
          Ø
        
      
      
        遍历子集树需
      
      
        O(n!)
      
      
        计算时间 
      
    
  
  
    
      
        
          Ø
        
      
      
        void backtrack (
      
      
        int
      
      
         t)
      
    
  
  
    
      
        
          Ø
        
      
      
        {
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        if (t>n) output(x);
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        else
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        for (
      
      
        int
      
      
      
      
        i
      
      
        =
      
      
        t;i
      
      
        <=
      
      
        n;i
      
      
        ++) {
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        x[t]=
      
      
        i
      
      
        ;
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        if (legal(t)) backtrack(t+1);
      
    
  
  
    
      
        
          Ø
        
      
      
        
        
        }
      
    
  
  
    
      
        
          Ø
        
      
      
        }
      
    
  
  


 
         
         
					 
					