View Code
void ZeroOnePack(int c,int w)
{
    for(int i=V;i>=c;i--)
        dp[i]=max(dp[i],dp[i-c]+w) ;
    return ;
}
void CompletePack(int c,int w)
{
    for(int i=c;i<=V;i++)
        dp[i]=max(dp[i],dp[i-c]+w) ;
    return ;
}
void MultiplePack(int c,int w,int a)
{
    if(c*a>=V)
    {
        CompletePack(c,w) ;
        return ;
    }
    int k=1 ;
    while(k<a)
    {
        ZeroOnePack(k*c,k*w) ;
        a-=k ;
        k<<=1 ;
    }
    ZeroOnePack(a*c,a*w) ;
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2021-12-16
  • 2021-09-13
  • 2021-07-10
  • 2022-12-23
  • 2021-05-16
相关资源
相似解决方案