解析:
把现有得球员和市场得球员全部变成自己需要买的,那么你手上所持有得金钱就是原有的+现有球员转会价格
然后裸得0/1背包
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1000;
int f[N];
int w[N],v[N];
int t,n,m,p;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(f,0,sizeof f);
int sum=0;
int tot=0;
for(int i=1;i<=n;i++) cin>>w[tot]>>v[tot],sum=sum+v[tot],++tot;
scanf("%d",&m);
for(int i=1;i<=m;i++) cin>>w[tot]>>v[tot],++tot;
scanf("%d",&p);
sum=sum+p;
//cout<<sum<<endl;
for(int i=0;i<tot;i++)
{
for(int j=sum;j>=v[i];j--)
{
f[j]=max(f[j],f[j-v[i]]+w[i]);
}
}
cout<<f[sum]<<endl;
}
}