Buổi 11 - Qui hoạch động - 9:45 ngày thứ năm 27/7/2017 tại A325
Sau buổi học, GV sẽ cập nhật thêm nội dung.
Sau buổi học, GV sẽ cập nhật thêm nội dung.
#include <stdio.h>
#include <conio.h>
int w[100]={4,5,1,2,6,3};
int v[100]={5,6,5,4,7,6};
int M=14, N=6;
int max(int a,int b)
{
if (a>b) return a; return b;
}
int MaxV(int KL, int i)
{
if (KL <= 0) return 0;
else if (i == -1) return 0;
else
// Lay vat i:v[i]+ MaxV(KL-w[i],i-1)
// Khong lay vat i: MaxV(KL,i-1)
{
if (KL>=w[i]) return max(v[i]+ MaxV(KL-w[i],i-1), MaxV(KL,i-1));
else return MaxV(KL,i-1);
}
}
int main()
{
printf("%d",MaxV(M,N-1));
return 0;
}
#include <stdio.h>
#include <conio.h>
int w[100]={4,5,1,2,6,3};
int v[100]={5,6,5,4,7,6};
int M=14, N=6;
int t[100], maxx;
int max(int a,int b,int i)
{
if (a>b)
{
t[i]= 1;
maxx=a;
return a;
}
t[i]=0;
maxx=b;
return b;
}
int MaxV(int KL, int i)
{
if (KL <= 0) return 0;
else if (i == -1)
{
//printf("%d\t%d\t%d\n",);
int i;
for ( i=0;i<N;i++) printf("%d\t",t[i]);
printf(" - max%d\n",maxx);
return 0;
}
else
// Lay vat i:v[i]+ MaxV(KL-w[i],i-1)
// Khong lay vat i: MaxV(KL,i-1)
{
if (KL>=w[i]) return max(v[i]+ MaxV(KL-w[i],i-1), MaxV(KL,i-1),i);
else {t[i]=0;return MaxV(KL,i-1);};
}
}
int main()
{
printf("%d",MaxV(M,N-1));
return 0;
}
Comment