Advertisement
Gustavo_Inzunza

Untitled

May 28th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. double recursion2(int mask)
  2. {
  3.     double mejor = 10e20;
  4.     //cout<<"dist_total:"<<dist_total<<endl;
  5.     for (int i0 = 0; i0 < 2*N; i0++)
  6.     {
  7.         if (!(mask & (1<<i0))) // si esta libre i0
  8.             for (int i1 = i0+1; i1 < 2*N; i1++)
  9.                 if (!(mask & (1<<i1)))// si esta libre i1
  10.                 {
  11.                         recursion2(mask | (1<<i0) | (1<<i1));
  12.                 double sol=hypotf(Coordenadas[i0].first-Coordenadas[i1].first, Coordenadas[i0].second-Coordenadas[i1].second)+memo[mask|(1<<i0)|(1<<i1)];
  13.                     if (sol < mejor)
  14.                         mejor = sol;
  15.                 }
  16.        
  17.     }              
  18.     if(mejor!=10e20)
  19.     {
  20.         memo[mask]=mejor;
  21.         return mejor;
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement