360笔试,第一题100,第二题没做完。。
都是暴利解的。。
第一题还画了半天正方体。。
第一次100🤣 第二题能不能帮我看看对不对
public static void main1(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] arr = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m ; j++) {
arr[i][j] = sc.nextInt();
}
}
int areas = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m ; j++) {
int num = arr[i][j];
if(num == 0) continue;
int area = num * 6 - 2 * (num - 1);
if(i == 0 && j == 0) areas += area;
else if(i == 0){
areas += area - 2 * (Math.min(num, arr[i][j-1]));
}
else if(j == 0){
areas += area - 2 * (Math.min(num, arr[i-1][j]));
}else{
areas += area - 2 * (Math.min(num, arr[i][j-1])) - 2 * (Math.min(num, arr[i-1][j]));
}
}
}
System.out.println(areas);;
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
HashMap<Integer, Integer> map1 = new HashMap<>();
HashMap<Integer, Integer> map2 = new HashMap<>();
for (int i = 0; i < n; i++) {
int num = sc.nextInt();
if(!map1.containsKey(num)){
map1.put(num, 1);
}else{
map1.put(num, map1.get(num)+1);
}
}
for (int i = 0; i < n; i++) {
int num = sc.nextInt();
if(!map2.containsKey(num)){
map2.put(num, 1);
}else{
map2.put(num, map2.get(num)+1);
}
}
for (int i = 0; i < m; i++) {
if(!map1.containsKey(i)) map1.put(i, 0);
if(!map2.containsKey(i)) map2.put(i, 0);
}
System.out.println(map1);
System.out.println(map2);
HashMap<Integer, Integer> res = new HashMap<>();
for (int i = 0; i < m; i++) {
res.put(i, 0);
}
for (int i = m - 1; i >= 0; i--) {
for (int j = 0; j < m; j++) {
int n1 = map1.get(j);
int n2 = map2.get((m+i-j)%m);
int num = Math.min(n1, n2);
res.put(i, num + res.get(i));
map1.put(j, n1 - num);
map2.put((m+i-j)%m, n2 - num);
}
}
String s = "";
System.out.println(res.toString());
for (int i = m - 1; i >= 0; i--) {
int num = res.get(i);
while(num > 0){
s+= i + " ";num--;
}
}
System.out.println(s.substring(0, s.length()-1));
}
查看3道真题和解析