题目链接
这是一道0/1背包的模版题,比较简单
import java.util.Arrays;
import java.util.Scanner;
/*
* 01背包模版题
*/
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
int dp[]=new int[1005];
int p[]=new int[1005];
int w[]=new int[1005];
while(t-->0){
Arrays.fill(dp, 0);
int n,v;
n=sc.nextInt();
v=sc.nextInt();
for(int i=0;i<n;i++){
p[i]=sc.nextInt();
}
for(int i=0;i<n;i++){
w[i]=sc.nextInt();
}
for(int i=0;i<n;i++){
for(int j=v;j>=w[i];j--){
dp[j]=Math.max(dp[j], dp[j-w[i]]+p[i]);
}
}
System.out.println(dp[v]);
}
sc.close();
}
}