P1757萌新初学背包问题,到底哪里错了
查看原帖
P1757萌新初学背包问题,到底哪里错了
1556563
youyangguang123楼主2024/12/21 19:53
#include<bits/stdc++.h>
using namespace std;
struct ssr
{
	int a,b,c;
}a[1005];
int m,u,n;
int dp[105][105];
string pd[1005][1005];
int main()
{
    cin>>m>>u>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].a>>a[i].b>>a[i].c;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=a[i].a;j--)
        {
            for(int k=u;k>=a[i].b;k--)
            {
                if(dp[j-a[i].a][k-a[i].b]+a[i].c>dp[j][k])
                {
                    dp[j][k]=dp[j-a[i].a][k-a[i].b]+=a[i].c;
                    pd[j][k]=pd[j-a[i].a][k-a[i].b]+=char(i);
                }
            }
        }
    }
    cout<<dp[m][u]<<endl;
    for(int i=0;i<pd[m][u].size();i++)
    {
        cout<<pd[m][u]<<" ";
    }
    return 0;
}
2024/12/21 19:53
加载中...