第4题: public static void main(String[] args) { Scanner in = new Scanner(System.in); String[] aStr = in.nextLine().split(" "); int total = Integer.parseInt(in.nextLine()); int[] a = new int[aStr.length]; for (int i = 0; i < a.length; i++) { a[i] = Integer.parseInt(aStr[i]); } Arrays.sort(a); int min = a[0]; if (min > total){ System.out.println(1); return; } int[] dp = new int[total + 1]; dp[0] = 1; for (int i = a.length - 1; i >= 0; i--) { for (int j = a[i]; j < total + 1; j++) { dp[j] += dp[j - a[i]]; } } for (int i = 1; i < min; i++) { dp[total] += dp[total - i]; } System.out.println(dp[total]); }
1 2

相关推荐

牛客网
牛客企业服务