3 条题解

  • 1
    @ 2023-4-1 15:13:05
    using namespace std;
    int f[10005],a[1005],b[1005];
    int main()
    {
    	int t;
    	cin>>t;
    	while(t--)
    	{
    		memset(f,0,sizeof(f));
    		int n,m;
    		cin>>m>>n;
    		for(int i=1;i<=m;i++)
    		{
    			cin>>a[i];
    		}
    		for(int i=1;i<=m;i++)
    		{
    			cin>>b[i];
    		}
    		for(int i=1;i<=m;i++)
    		{
    			for(int j=n;j>=b[i];j--)
    			{
    				f[j]=max(f[j],f[j-b[i]]+a[i]);
    			}
    		}
    		cout<<f[n]<<"\n";
    	}
    	return 0;
    }
    
    

    信息

    ID
    494
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    132
    已通过
    40
    上传者