zoukankan      html  css  js  c++  java
  • 01背包-入门二题(poj3624 hdu2602)

    二维数组 hdu2602

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    const int maxn=4000;
    
    int dp[13000];
    int d;
    int w;
    int n,wl;
    
    int main(){
        memset(dp,0,sizeof(dp));
        cin>>n>>wl;
        for(int i=1;i<=n;i++){//前i种物品 
        cin>>w>>d;
            for(int j=wl;j>=1;j--){//容量为j 
                if(j>=w) dp[j]=max(dp[j],dp[j-w]+d); 
            }
        }
        cout<<dp[wl]<<endl;
        return 0;
    }
    View Code

    一维数组

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    const int maxn=4000;
    
    int dp[13000];
    int d[maxn];
    int w[maxn];
    int n,wl,t;
    
    int main(){
    
        cin>>t;
        while(t--){
        memset(dp,0,sizeof(dp));
        cin>>n>>wl;
        for(int i=1;i<=n;i++)
        cin>>d[i];
        for(int i=1;i<=n;i++)
        cin>>w[i];
        
        for(int i=1;i<=n;i++){//前i种物品 
            for(int j=wl;j>=0;j--){//容量为j 
                if(j>=w[i]) dp[j]=max(dp[j],dp[j-w[i]]+d[i]); 
            }
        }
        cout<<dp[wl]<<endl;
        }
        return 0;
    }
    View Code

    一维数组 poj3624

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    const int maxn=4000;
    
    int dp[13000];
    int d;
    int w;
    int n,wl;
    
    int main(){
        memset(dp,0,sizeof(dp));
        cin>>n>>wl;
        for(int i=1;i<=n;i++){//前i种物品 
        cin>>w>>d;
            for(int j=wl;j>=1;j--){//容量为j 
                if(j>=w) dp[j]=max(dp[j],dp[j-w]+d); 
            }
        }
        cout<<dp[wl]<<endl;
        return 0;
    }
    View Code
    柳暗花明又一村
  • 相关阅读:
    linux查看电脑温度
    sshd_config详解
    Python Matplotlib包中文显示异常解决方法
    "打开jupyter notebook后找不到安装Anaconda的环境"的解决方法
    [7]力扣每日一题
    UML复习回忆
    [6]力扣每日一题
    [4]力扣每日一题
    [3]力扣每日一题
    mybatis 动态创建表、主键、索引、注释
  • 原文地址:https://www.cnblogs.com/ucandoit/p/8796796.html
Copyright © 2011-2022 走看看