求助!!!
  • 板块学术版
  • 楼主_zhx
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/13 17:06
  • 上次更新2023/11/13 19:29:21
查看原帖
求助!!!
784712
_zhx楼主2023/11/13 17:06

题目描述 给定 nn 种物品,背包容量为 CC。

每种物品重量、价值、数量。

往背包装一些物品,问在重量不超过背包容量的情况下可获得的最大价值。

输入格式 第一行 CC 和 nn。

接来下 nn 行,每行三个整数,依次是每种物品的重量、价值、数量。

哪里错了?

#include<bits/stdc++.h>
using namespace std;
int n,m,t,x,a[2005][2005],b[10001],c[10001],d[10001],f[10001];
int main()
{
    cin>>m>>n;
    for(int i=1;i<=n;i++)
	{
        cin>>b[i]>>c[i]>>x;
        t=max(t,x);
        d[x]++,a[x][d[x]]=i;
    }
    for(int i=1;i<=n;i++) for(int j=m;j>=0;j--) for(int k=1;k<=d[i];k++) if(j>=b[a[i][k]]) f[j]=max(f[j],f[j-b[a[i][k]]]+c[a[i][k]]);
    cout<<f[m];
    return 0;
}

2023/11/13 17:06
加载中...