首页 > 奇安信8.1笔试
头像
yangyangyangyag
编辑于 2020-08-01 17:05
+ 关注

奇安信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));
    }
}

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐