Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Problem::DP(void)
- {
- qsort(zadania,n,sizeof(Zadanie),compare);
- __int64 a1=0,b1=0; //zmienne przechowujące pomiary czasu
- __int64 freq=0; //czestotliwosc zegara
- {
- fs[i]=new float*[T-t+1];
- for(unsigned j=0;j<=T-t;j++)
- {
- fs[i][j]=new float[s_p+T];
- }
- }
- for(unsigned s=0;s<T-t;s++)
- {
- for(unsigned i=0;i<=T-t;i++)
- {
- for(unsigned j=0;j<s_p+T;j++)
- {
- fs[n][i][j]=0;
- }
- }
- for(int k=n-1;k>=0;k--)
- {
- for(unsigned i=0;i<=T-t;i++)
- {
- for(unsigned j=0;j<s_p+T;j++)
- {
- if(j+zadania[k].p<s_p+T)
- {
- if(i+zadania[k].p<=s)
- {
- a=(((i+zadania[k].p)*zadania[k].w)+fs[k+1][i+zadania[k].p][j]);
- b=(((j+zadania[k].p)*zadania[k].w)+fs[k+1][i][j+zadania[k].p]);
- fs[k][i][j]=min(a,b);
- }
- else
- {
- fs[k][i][j]=((j+zadania[k].p)*zadania[k].w)+fs[k+1][i][j+zadania[k].p];
- }
- }
- else
- {
- fs[k][i][j]=(j+zadania[k].p)*zadania[k].w;
- }
- }
- if(s==0)
- {
- kryt=fs[0][0][s+t];
- poz=0;
- }
- else
- {
- if(fs[0][0][s+t]<kryt)
- {
- kryt=fs[0][0][s+t];
- poz=s;
- }
- }
- }
- }
- }
- for (unsigned i=0;i<=n;i++)
- {
- for (unsigned j=0;j<=T-t;j++)
- {
- delete []fs[i][j];
- }
- delete []fs[i];
- }
- delete []fs;
- QueryPerformanceCounter((LARGE_INTEGER *)&b1);
- czas=(double)(b1-a1)/freq;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement