HDU2602——01背包模版题

可以当作01背包的模版。代码:

//
//  main.cpp
//  HDU2602
//
//  Created by jinyu on 2018/7/16.
//  Copyright © 2018年 jinyu. All rights reserved.
//

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int dp[1000+77];
int w[1000+77];
int v[1000+77];
int main(){
    int T;
    cin>>T;
    while(T--){
        memset(dp, 0, sizeof(dp));
        int n,s;
        scanf("%d%d",&n,&s);
        for(int i = 0;i<n;i++){
            scanf("%d",&v[i]);
        }
        for(int i = 0;i<n;i++){
            scanf("%d",&w[i]);
        }
        for(int i = 0;i<n;i++){
            for(int j = s;j>=w[i];j--){
                
                    dp[j] = max( dp[j] , dp[j-w[i]] + v[i] );
                
            }
        }
        printf("%d\n",dp[s]);
    }
    return 0;
    
}

猜你喜欢

转载自blog.csdn.net/qq_41508508/article/details/81067873