bilibili第二提组最小整数

import java.util.*;
public class Main {
	public static int max(int[]w,int[]v,int cap) {
		int N= w.length;
		int[][] t = new int[N+1][cap+1];
		for(int i = 1;i < N+1;i++)
			for(int j = 1;j < cap+1;j++) {
				if(j<w[i-1])
					t[i][j]=t[i-1][j-1];
				else {
					t[i][j] = Math.max(t[i-1][j], t[i-1][j-w[i-1]]+v[i-1]);
				}
			}
		return t[N][cap];
	}
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		while(scan.hasNext()) {
			int N = scan.nextInt();
			int cap = scan.nextInt();
			int[] w = new int[N],v = new int[N];
			for(int i = 0;i < N;i++)
				w[i] = scan.nextInt();
			for(int i = 0;i < N;i++)
				v[i] = scan.nextInt();
			System.out.println(max(w,v,cap)); 
		}
	}
bilibili给大家送好心情,给个第二题java代码,大家交流#笔试题目#
全部评论

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务