分组背包

我竟然没没想到分组背包怎么写!!!

a[i][k]记录第i组第k个在输入时的编号

for(int i=0;i<组数;i++)

{

  for(int j=背包大小;j>=0;j--)

  {

    for(int k=0;k<本组个数;k++)

    {

        int ji=a[i][k];

        if(zhong[ji]>=j)

        {

            ans[j]=max(ans[j],ans[j-zhong[ji]]+zhi[ji]);

        }

    }

  }

}

随意手写的,代码可能有偏差,但思路是对的

原文地址:https://www.cnblogs.com/fanhao050109/p/11173109.html