Advertisement
Guest User

Untitled

a guest
Jul 12th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void Problem::DP(void)
  2. {
  3.     qsort(zadania,n,sizeof(Zadanie),compare);
  4.     __int64 a1=0,b1=0;  //zmienne przechowujące pomiary czasu
  5.     __int64 freq=0; //czestotliwosc zegara
  6.    
  7.     {
  8.         fs[i]=new float*[T-t+1];
  9.         for(unsigned j=0;j<=T-t;j++)
  10.         {
  11.             fs[i][j]=new float[s_p+T];
  12.         }
  13.     }
  14.     for(unsigned s=0;s<T-t;s++)
  15.     {
  16.         for(unsigned i=0;i<=T-t;i++)
  17.         {
  18.             for(unsigned j=0;j<s_p+T;j++)
  19.             {
  20.                 fs[n][i][j]=0;
  21.             }
  22.         }
  23.         for(int k=n-1;k>=0;k--)
  24.         {
  25.             for(unsigned i=0;i<=T-t;i++)
  26.             {
  27.                 for(unsigned j=0;j<s_p+T;j++)
  28.                 {
  29.                     if(j+zadania[k].p<s_p+T)
  30.                     {
  31.                         if(i+zadania[k].p<=s)
  32.                         {
  33.                             a=(((i+zadania[k].p)*zadania[k].w)+fs[k+1][i+zadania[k].p][j]);
  34.                             b=(((j+zadania[k].p)*zadania[k].w)+fs[k+1][i][j+zadania[k].p]);
  35.                             fs[k][i][j]=min(a,b);
  36.                         }
  37.                         else
  38.                         {
  39.                             fs[k][i][j]=((j+zadania[k].p)*zadania[k].w)+fs[k+1][i][j+zadania[k].p];
  40.                         }
  41.                     }
  42.                     else
  43.                     {
  44.                         fs[k][i][j]=(j+zadania[k].p)*zadania[k].w;
  45.                     }
  46.                 }
  47.                 if(s==0)
  48.                 {
  49.                     kryt=fs[0][0][s+t];
  50.                     poz=0;
  51.                 }
  52.                 else
  53.                 {
  54.                     if(fs[0][0][s+t]<kryt)
  55.                     {
  56.                         kryt=fs[0][0][s+t];
  57.                         poz=s;
  58.                     }
  59.                 }
  60.             }
  61.         }
  62.     }
  63.     for (unsigned i=0;i<=n;i++)
  64.     {
  65.         for (unsigned j=0;j<=T-t;j++)
  66.         {
  67.             delete []fs[i][j];
  68.         }
  69.         delete []fs[i];
  70.     }
  71.     delete []fs;
  72.     QueryPerformanceCounter((LARGE_INTEGER *)&b1);
  73.     czas=(double)(b1-a1)/freq;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement