您当前的位置: 首页 > 

钟钟终

暂无认证

  • 3浏览

    0关注

    233博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

9/7 dp练习+01背包方案数+求背包具体方案

钟钟终 发布时间:2022-09-07 22:04:38 ,浏览量:3

01背包方案数

在f[j]表示容量为j时可获得的最大价值的情况下,增加数组c[i]表示容量为i时最优选法的方案数

void fun()
{
    cin>>n>>m;
    for(int i=1;i>v[i]>>w[i];
    for(int i=1;i=v[i];j--)
        {
            if(f[j-v[i]]+w[i]>f[j])
            {
                f[j]=f[j-v[i]]+w[i];
                c[j]=c[j-v[i]];
            }
            else if(f[j-v[i]]+w[i]==f[j])
                c[j]=(c[j]+c[j-v[i]])%mod;
        }
    }
    coutv[i]>>w[i];
    for(int n;i>=1;i--)
    {
        for(int j=0;j=v[i])
                f[i][j]=max(f[i][j],f[i+1][j-v[i]]+w[i]);
        }
    }
    int j=m;
    for(int i=1;i=v[i]&&f[i][j]==f[i][j-v[i]]+w[i])
        {
            cout>n;
    for(int i=1;i>a[i]>>b[i]>>c[i];
    for(int i=n;i>=1;i--)
    {
        for(int j=0;j=b[i])
                    f[i][j][k]=max(f[i][j][k],f[i+1][j-a[i]][k-b[i]]+c[i]);
            }
        }
    }
    cout>v;
        add(u,v),add(v,u);
    }
    dfs(1,0);
    int ans=-inf;
    for(int i=1;is1>>m>>s2;
    for(int i=1;i            
关注
打赏
1664378814
查看更多评论
0.0531s