#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,T;
int wi[1001],pi[1001],f[1001];
int main(){
    cin>>T;
    while(T--){
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>pi[i]>>wi[i];
        }
        memset(f,0,sizeof(f));
        for(int i=1;i<=n;i++){
            for(int j=30;j>=wi[i];j--){
                f[j]=max(f[j],f[j-wi[i]]+pi[i]);
            }
        }
        int g,sum=0;
        cin>>g;
        while(g--){
            int k;
            cin>>k;
            sum+=f[k];
        }
        cout<<sum<<endl;
    }
    return 0;
} 

``
# 疯狂折扣## 题目背景轰轰一家子听说超市进行大打折听说能打成骨折哦。那天晚上他们全家人都去了……。## 题目描述每人均可以购买每种商品但这个商品只允许购买 $1$ 个。每人在他能够拎得动的重量之内可以拿很多商品即不超过他最大能拿的商品总重量。现在给出商品的价格与重量的信息表并给出每个人能拿的商品总重量求这一家人购买商品的最大总价值。## 输入格式数据具有多组数据。第一行一个整数 $T$共有 $

原文地址: https://www.cveoy.top/t/topic/fbmN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录