Skip to content

Commit 450dc23

Browse files
authored
Add files via upload
1 parent 172d4c8 commit 450dc23

File tree

4 files changed

+151
-0
lines changed

4 files changed

+151
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package CampusRecruitment2019;
2+
3+
import java.util.Scanner;
4+
5+
// 迷路的牛牛
6+
public class Main004 {
7+
public static void main(String[] args) {
8+
Scanner sc = new Scanner(System.in);
9+
int n = sc.nextInt();
10+
String str = sc.next();
11+
12+
// 方向抵消
13+
int res = 0;
14+
for (int i = 0; i < n; i++) {
15+
if (str.charAt(i) == 'L')
16+
res--;
17+
else
18+
res++;
19+
}
20+
// 取余判断最后方向
21+
res %= 4;
22+
if (res == 0)
23+
System.out.println('N');
24+
else if (Math.abs(res) == 2)
25+
System.out.println('S');
26+
else if (res == 1 || res == -3)
27+
System.out.println('E');
28+
else
29+
System.out.println('W');
30+
}
31+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package CampusRecruitment2019;
2+
3+
import java.util.Comparator;
4+
import java.util.Scanner;
5+
import java.util.Arrays;
6+
7+
// 牛牛的闹钟
8+
public class Main007 {
9+
public static void main(String[] args) {
10+
Scanner sc = new Scanner(System.in);
11+
int N = sc.nextInt();
12+
int[][] clock = new int[N][2];
13+
for (int i = 0; i < N; i++) {
14+
clock[i][0] = sc.nextInt();
15+
clock[i][1] = sc.nextInt();
16+
}
17+
int X = sc.nextInt();
18+
int A = sc.nextInt();
19+
int B = sc.nextInt();
20+
21+
// 对闹钟时间排序
22+
Arrays.sort(clock, new Comparator<int[]>() {
23+
@Override
24+
public int compare(int[] o1, int[] o2) {
25+
// 时钟不同则按照时钟升序排序
26+
if (o1[0] != o2[0])
27+
return o1[0] - o2[0];
28+
// 时钟相同则按照分钟升序排序
29+
return o1[1] - o2[1];
30+
}
31+
});
32+
33+
// 获取能及时到达教室的最晚起床时间
34+
int latest = A * 60 + B - X;
35+
int current;
36+
int i = 0;
37+
while (i < N) {
38+
current = clock[i][0] * 60 + clock[i][1];
39+
// 当前闹钟时间与最晚起床时间比较,小于等于则继续判断下一个闹钟时间
40+
if (current <= latest)
41+
i++;
42+
else
43+
break;
44+
}
45+
System.out.print(clock[i - 1][0] + " " + clock[i - 1][1]);
46+
}
47+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package CampusRecruitment2019;
2+
3+
import java.util.Scanner;
4+
import java.util.Arrays;
5+
6+
// 俄罗斯方块
7+
public class Main009 {
8+
public static void main(String[] args) {
9+
Scanner sc = new Scanner(System.in);
10+
int n = sc.nextInt();
11+
int m = sc.nextInt();
12+
int[] count = new int[n];
13+
int[] locat = new int[m];
14+
for (int i = 0; i < m; i++)
15+
locat[i] = sc.nextInt();
16+
17+
// 统计每列的方块数,最低一列即为所获分数
18+
for (int i = 0; i < m; i++)
19+
count[locat[i] - 1]++;
20+
int res = Arrays.stream(count).min().getAsInt();
21+
System.out.println(res);
22+
}
23+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package CampusRecruitment2019;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.Comparator;
6+
import java.util.Scanner;
7+
8+
// 塔
9+
public class Main014 {
10+
public static void main(String[] args) {
11+
Scanner sc = new Scanner(System.in);
12+
int n = sc.nextInt();
13+
int k = sc.nextInt();
14+
int[][] tower = new int[n][2];
15+
for (int i = 0; i < n; i++) {
16+
tower[i][0] = i + 1; // 记录初始位置
17+
tower[i][1] = sc.nextInt(); // 记录高度
18+
}
19+
20+
// 按照高度升序排序
21+
Arrays.sort(tower, Comparator.comparingInt(o -> o[1]));
22+
23+
// 计算余数,可知总体平均后高度差是0还是1
24+
int sum = 0;
25+
for (int i = 0; i < n; i++)
26+
sum += tower[i][1];
27+
int rest = sum % n;
28+
29+
ArrayList<String> list = new ArrayList<>();
30+
// 最高减最低差大于0,且有剩余操作次数
31+
while (tower[n - 1][1] - tower[0][1] > 0 && k > 0) {
32+
// 余数大于0且高度差为1,说明总体已经最优
33+
if (rest > 0 && tower[n - 1][1] - tower[0][1] == 1) break;
34+
// 最高塔往最低塔移动立方块
35+
tower[0][1]++;
36+
tower[n - 1][1]--;
37+
k--;
38+
// 记录初始相对位置的移动操作
39+
list.add(tower[n - 1][0] + " " + tower[0][0]);
40+
// 一次操作后数组重新升序排序
41+
Arrays.sort(tower, Comparator.comparingInt(o -> o[1]));
42+
}
43+
44+
int min = tower[0][1], max = tower[n - 1][1];
45+
int delta = max - min;
46+
System.out.println(delta + " " + list.size());
47+
for (String str : list)
48+
System.out.println(str);
49+
}
50+
}

0 commit comments

Comments
 (0)