十五月明


私信TA

用户名:dotcpp0605328

访问量:5439

签 名:

等  级
排  名 319
经  验 5465
参赛次数 0
文章发表 87
年  龄 18
在职情况 学生
学  校 曲阜师范大学
专  业 人工智能

  自我简介:

Easy

解题思路:

注意事项:

参考代码:

#include<iostream>

using namespace std;

int main()

{

    int n,m; cin>>n>>m;

    int sum=1,sum2=1;//主件价值,主件价钱的次数

    int a[10000],a1[10000];

    int w,v,p;

    int dp[10000];

    

    for(int i=1;i<=m;i++)

    {

        cin>>w>>v>>p;

        int qq=0;//价值

        qq=w*v;

        if(!p)//主件

        {

            a1[sum2++]=w;

            a[sum++]=qq;

        }

        else//附件额外加到主件上

        {

            a1[p]+=w;

            a[p]+=qq;

        }

    }

    for(int i=1;i<=sum;i++)//dp[]数组基本操作

    {

        for(int j=n;j>=a1[i];j--)

        {

            dp[j]=max(dp[j],dp[j-a1[i]]+a[i]);

        }

    }

    cout<<dp[n];

    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »