hrbust1053 Warcraft III (完全背包裸题)

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

struct beibao{
    int val;
    int v;
}a[100010];

int dp[100010];

int main(){
    int T,V,n;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&V,&n);
        for(int i=0;i<n;i++)
            scanf("%d%d",&a[i].val,&a[i].v);

        memset(dp,0,sizeof(dp));
        for(int i=0;i<n;i++)
            for(int j=a[i].v;j<=V;j++)
                dp[j]=max(dp[j],dp[j-a[i].v]+a[i].val);

        printf("%d\n",dp[V]);
    }
    return 0;
}

HLG 1053 HRBUST 1053


题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1053


题意:有N种作战单位,每个单位无限生产,你有一定的金钱,求最多能生产的作战价值是多少?



你可能感兴趣的:(hrbust1053 Warcraft III (完全背包裸题))