求调
查看原帖
求调
1375502
muwan楼主2025/1/13 21:09
#include<bits/stdc++.h>
using namespace std;
int n,t,p,q;
int const N=1e5+5;
int dp[N],v[N],pa[N];
int main()
{
	cin>>t;
	while(t--)
	{
		memset(dp,0,sizeof dp);
		cin>>n>>p>>q;
		for(int i=1;i<=n;i++)	cin>>v[i]>>pa[i];
		for(int i=1;i<=n;i++)
		{
			for(int j=q;j>=pa[i];j--)
			dp[j]=max(dp[j],dp[j-pa[i]]+v[i]);
		}
		if(dp[p]>q)   cout<<-1;
		else cout<<dp[p];
		cout<<"\n";
	}
	return 0;
}
2025/1/13 21:09
加载中...