1 条题解

  • 0
    @ 2024-12-24 10:06:20

    C++ :

    #include<cstdio>
    #include<cstring>
    using namespace std;
    int f[320010],v[70],w[70],q[70],N,m;
    int main()
    {
    	memset(f,0,sizeof(f));
    	int i,j;
    	scanf("%d%d",&N,&m);
    	for(i=1;i<=m;i++)
    	{
    		scanf("%d%d%d",&v[i],&w[i],&q[i]);
    		w[i]=v[i]*w[i];
    	}
    	for(i=1;i<=m;i++)
    	{
    		if(q[i]>0)
    		{
    			v[i]=v[i]+v[q[i]];
    			w[i]=w[i]+w[q[i]];
    		}
    	}
    	for(i=1;i<=m;i++)
    	{
    		for(j=N;j>=v[i];j--)
    		{
    			if((j>=v[i]) && (f[j]<f[j-v[i]]+w[i]))f[j]=f[j-v[i]]+w[i];
    		}
    	}
    	printf("%d",f[N]);
    	return 0;
    }
    
    • 1

    【基础背包入门5】金明的预算方案

    信息

    ID
    2703
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者