zoukankan      html  css  js  c++  java
  • 4.M

    看到题目的时候一直想用贪心算法。考虑不周。动态规划。。。

    #include<iostream>
    #include<cstring>
    using namespace std;
    int dp[1000][1000];
    
    int max(int x,int y)
    {
        return x>y?x:y;
    }
    
    int main()
    {
        int t,n,v,i,j;
        int va[1000],vo[1000];
        cin>>t;
        while(t--)
        {
            cin>>n>>v;
            for(i=1;i<=n;i++)
                cin>>va[i];
            for(i=1;i<=n;i++)
                cin>>vo[i];
            memset(dp,0,sizeof(dp));//初始化操作
             for(i=1;i<=n;i++)
            {
                for(j=0;j<=v;j++)
                {
                    if(vo[i]<=j)//表示第i个物品将放入大小为j的背包中
                        dp[i][j]=max(dp[i-1][j],dp[i-1][j-vo[i]]+va[i]);//第i个物品放入后,那么前i-1个物品可能会放入也可能因为剩余空间不够无法放入
                    else //第i个物品无法放入
                        dp[i][j]=dp[i-1][j];
                }
            }
            cout<<dp[n][v]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    easyui 例子2
    easyui 1
    SqlHelper.cs
    ajax 视频点赞功能
    路线
    .net面试题
    cookie 和session asp.net
    前端面试2
    前端面试1
    bootstrap 初始学习篇
  • 原文地址:https://www.cnblogs.com/Twsc/p/5743593.html
Copyright © 2011-2022 走看看