void zeroonepack(int v,int w)
{
for(int j=W;j>=w;j--)
dp[j]=max(dp[j],dp[j-w]+v);
}
void completepack(int v,int w)
{
for(int j=w;j<=W;j++)
dp[j]=max(dp[j],dp[j-w]+v);
}
void multipack(int v,int w,int m)
{
if(w*m>W)
{
completepack(v,w);
return;
}
int k=1;
while(k<m)
{
zeroonepack(k*v,k*w);
m=m-k;
k*=2;
}
zeroonepack(v*m,w*m);
}
the fucking pack~
最新推荐文章于 2020-12-24 11:52:24 发布