很多人需要第二题的代码,我直接发评论区了,java写的。直接暴力递归就ac了,根本不需要改动态规划。 public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int M = in.nextInt(); int K = in.nextInt(); int[] km = new int[N]; int[] gold = new int[N]; for (int i = 0; i < N; i++) { km[i] = in.nextInt(); gold[i] = in.nextInt(); } int max = gold[0]; System.out.println(maxGold(N, M, K - 1, km, gold, max, 1,0)); } public static int maxGold(int N, int M, int K, int[] km, int[] gold, int max, int gg,int start) { if (gg == N || (km[gg]-start) > M || K < 0) { return max; } int a = maxGold(N, M, K - 1, km, gold, gold[gg]+ max, gg + 1,km[gg]); int b = maxGold(N, M, K, km, gold, max, gg + 1,start); return Math.max(a,b); }
1 8

相关推荐

牛客网
牛客企业服务