diff --git a/src/其他/abwl/q1/Main.java b/src/其他/abwl/q1/Main.java deleted file mode 100644 index 08b275a..0000000 --- a/src/其他/abwl/q1/Main.java +++ /dev/null @@ -1,39 +0,0 @@ -package 其他.abwl.q1; - -import java.util.*; - -public class Main { - - public static void main(String[] args) { - Scanner in = new Scanner(System.in); - String[] s = in.nextLine().split(" "); - if (s.length < 1) { - return; - } - int k = Integer.parseInt(s[0]); - if (k == 0) { - return; - } - List nums = new ArrayList<>(); - for (int i = 1; i < s.length; i++) { - nums.add(Integer.parseInt(s[i])); - } - in.close(); - - int sp = nums.size() / k; - - Map map = new HashMap<>(); - for (int i = 0; i < nums.size(); i++) { - if (map.containsKey(nums.get(i))) { - int total = map.get(nums.get(i)) + 1; - if (total > sp) { - System.out.print(nums.get(i)); - return; - } - map.put(nums.get(i), total); - } else { - map.put(nums.get(i), 1); - } - } - } -} diff --git a/src/其他/丢玻璃球/Solution.java b/src/其他/丢玻璃球/Solution.java new file mode 100644 index 0000000..d374624 --- /dev/null +++ b/src/其他/丢玻璃球/Solution.java @@ -0,0 +1,33 @@ +package 其他.丢玻璃球; + +import java.util.Scanner; + +/** + * F(N) = min{ max(1(碎了), F(N - 1) + 1(没碎)), max(2, F(N - 2) + 1), max(3, F(N - 3) + 1), …… , max(N - 1, F(1)) + */ +public class Solution { + public static void main(String[] args) { + int N = 0; + Scanner scanner = new Scanner(System.in); + while (N < 1) { + N = scanner.nextInt(); + } + + int[] dp = new int[N + 1]; + dp[0] = 0; + dp[1] = 1; + + for (int i = 2; i <= N; ++i) { + int min = i; + for (int j = 1; j < i; ++j) { + int tmp = Math.max(j, dp[i - j] + 1); + if (tmp < min) { + min = tmp; + } + } + dp[i] = min; + } + + System.out.println(dp[N]); + } +} diff --git a/src/其他/abwl/q2/Main.java b/src/其他/迪杰斯特拉/Main.java similarity index 99% rename from src/其他/abwl/q2/Main.java rename to src/其他/迪杰斯特拉/Main.java index 08c5c8d..0d18f5e 100644 --- a/src/其他/abwl/q2/Main.java +++ b/src/其他/迪杰斯特拉/Main.java @@ -1,4 +1,4 @@ -package 其他.abwl.q2; +package 其他.迪杰斯特拉; import java.util.*;