单项选择题

下面的伪码最可能是用来求解哪个问题的方案?()
void Knapsack(in tn,float M,float v[],float w[],float x[])
Sort(n,v,w);
inti,
for(i=1;i< =n;i++)x[i]=0;
float c=M;
for(i=1;i< =n;i++){
if(w[i]>c)break;
x[i]=1;
c-=w[i];
if(i< =n)x[i]=c/w[];}

A.活动安排问题
B.最优前缀码
C.全排列问题
D.0-1背包问题