NC14699 队伍配置

题目

  • 原题地址:队伍配置
  • 题目编号:NC14699
  • 题目类型:DP、二位费用背包
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 32768K,其他语言65536K

1.题目大意

  • 我,有cost值,我要选人(不超过5个),每个人都有cost值和ATK值,每个人都要选至多1件装备
  • 每件装备都有cost值和ATK值,要保证我的cost值要大于选中的每个人的cost值和装备的cost值之和
  • ATK最大值

2.题目分析

  • dp[i][j][k]表示cost为i时,选了j个从者,k个概念礼装的最大ATK

3.题目代码

#include <bits/stdc++.h>
#define f(i,j,k) for(int i=j;i>=k;i--)
#define ff(i,k) for(int i=1;i<=k;i++)

using namespace std;

int n, m, d, a, b, c[302][6][6], ans;
int main() {
    cin >> n >> m >> d;
    ff(i,n){
        cin >> a >> b;
        f(j,d,b)ff(k,5) ans = max(ans,(c[j][k][0]=max(c[j][k][0],c[j-b][k-1][0]+a)));
    } ff(i,m){
        cin >> a >> b;
        f(j,d,b)ff(k,5)ff(l,k)ans = max(ans,(c[j][k][l]=max(c[j][k][l],c[j-b][k][l-1]+a)));
    } cout << ans << endl;
}
posted @ 2022-09-14 08:38  仪战群儒  阅读(40)  评论(0)    收藏  举报