奇安信8.1笔试
选择题做的稀烂,还好编程全部AC.可能也凉了
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @Description: * @Create 2020-08-01 15:21 * @Email: */ public class QiAnXinTest1 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = null; while ((s = br.readLine()) != null) { int T = Integer.valueOf(s); int n = Integer.valueOf(br.readLine()); int[][] arr = new int[n][2]; for (int i = 0; i < n; i++) { String[] s1 = br.readLine().split(" "); arr[i][0] = Integer.valueOf(s1[0]); arr[i][1] = Integer.valueOf(s1[1]); } int res = function2(arr, n, T); System.out.println(res); } br.close(); } /** * 动态规划 * * @param arr * @param n * @param T * @return */ private static int function2(int[][] arr, int n, int T) { int[] dp = new int[T + 1]; for (int i = 1; i <= T; i++) { dp[i] = dp[i - 1];// 这里很关键 for (int j = 0; j < n; j++) { if (i >= arr[j][0]) { dp[i] = Math.max(dp[i], dp[i - arr[j][0]] + arr[j][1]); } } } return dp[T]; } } class Test2 { int res = 0; public int reletive_7(int[] digit) { // write code here res = 0; int n = digit.length; int[] used = new int[n]; dfs(digit, used, 0, 0); return res; } private void dfs(int[] digit, int[] used, int sum, int count) { if (count == digit.length) { if (sum % 7 == 0) { res++; } return; } for (int i = 0; i < digit.length; i++) { if (used[i] == 0) { used[i] = 1; dfs(digit, used, sum * 10 + digit[i], count + 1); used[i] = 0; } } } public static void main(String[] args) { Test2 test2 = new Test2(); int[] ints = {1, 1, 2}; System.out.println(test2.reletive_7(ints)); } }#奇安信笔试##笔试题目#