郑州轻工业大学2022级程序设计班级天梯赛基础题题解

郑州轻工业大学2022级程序设计班级天梯赛基础题题解

anzai249 床主

前排提醒

自己写的,我很菜,别喷了别喷了,如果能让你学到点什么那就再好不过了。

限于时间和篇幅,我就不在这里面详细描述题目了,参见这里,真的能进去吗:https://pintia.cn/problem-sets/1601181376764964864/

无所谓,我会出手

请直接输出 :“It doesn’t matter,I’ll do it.”(输出不含引号)。

样例输出

1
It doesn't matter,I'll do it.

题解

1
2
3
4
5
public class Main{
public static void main(String args[]){
System.out.println("It doesn't matter,I'll do it.");
}
}

数组总和

给出一个正整数和一段长度为n的数组,请输出的结果。

样例输入

1
2
4
1 2 3 4

样例输出

1
30

题解

需要注意的是有的测试点给的数据会超掉int的上限,好多人因为这个错了……

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
long a = 0;
long all = 0;
for (int i = 1; i <= n; i++) {
a = scan.nextLong();
all = all + (i * a);
}
System.out.println(all);
}
}

捡到一个矩形

这天,我捡到了一个二维坐标轴,坐标轴上有一个矩形,现在给出一个点的坐标,问这个坐标是否在矩形中。

样例输入

1
2
3
4
5
2
0 0 2 2
1 1
1 1 2 2
0 0

样例输出

1
2
YES
NO

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
int x1,y1,x2,y2,x,y = 0;
for(int i=0;i<t;i++){
x1 = scan.nextInt();
y1 = scan.nextInt();
x2 = scan.nextInt();
y2 = scan.nextInt();
x = scan.nextInt();
y = scan.nextInt();
if((x>=x1&&x<=x2)&&(y>=y1&&y<=y2)){
System.out.println("YES");
}else{
System.out.println("NO");
}
}
}
}

字符转换

现给你一种对字符的操作,使其变成该字符在字母表后的第个位置,为该字符在字母表中的位置。例如,对字符进行操作,会将其变成后的第一个字母,即;对字符进行操作,会将其变成后的第二个字母,即…以此类推。

需要注意的是,该字母表是一个循环字母表,即字符后的第一个字符是后又是,循环往复。

现在给你一个字符串ss均由小写字母组成,1<=∣s∣<=1e5,请输出对字符串s的每一位字符进行操作后的结果。

样例输入

1
upupup

样例输出

1
pfpfpf

题解

个人感觉最难相通的是循环的时候对26取余数然后会出0……

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
String s = scan.next();
int len = s.length();
char a = 'a';
int hashCode = 0;
int hashCode1 = 0;
for (int i = 0; i < len; i++) {
a = s.charAt(i);
hashCode = (Character.hashCode(a) - 96) % 26;
hashCode1 = (hashCode + hashCode) % 26;
if (hashCode1 == 0) {
hashCode1 = 26;
}
System.out.print(Character.toString(Character.toChars(hashCode1 + 96)[0]));
}
System.out.print("\n");
}
}

捡到了一个成绩

天梯赛过后,所有同学的成绩被打印在一张纸上。现在老师想要统计某班得分的均值,以及得分高于这个均值的同学们的分数之和,请你帮助老师计算出这两个值。

样例输入

1
2
6
13 105 237 173 273 134

样例输出

1
2
155.833
683

题解

小数点后三位这玩意我想了半天

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
double sum[] = new double[n];
double all = 0;
double avr = 0;
double high1 = 0;
for(int i=0;i<n;i++){
sum[i] = scan.nextDouble();
}
for(int i=0;i<n;i++){
all = all + sum[i];
}
avr = all / n;
System.out.printf("%.3f",avr);
System.out.print("\n");
for(int i=0;i<n;i++){
if(sum[i]>avr){
high1 = high1 + sum[i];
}
}
System.out.printf("%.0f",high1);
}
}

炎爆

cys学姐非常喜欢Arknights这款游戏,而其中伊芙利特是她最引以为傲的干员之一。

给你一个的矩形,矩形中的每一个位置都有一个敌人,其中代表矩形第行,第列上的敌人。

假设伊芙利特部署在的位置上,并且朝向右,那么伊芙利特会对的所有敌人造成1点伤害。

现在给你次部署,每次部署都给出一个部署位置,代表伊芙利特部署在矩形的第行,第列,再给出一个字符op,代表伊芙利特的朝向(U代表向上,R代表向右,D代表向下,L代表向左)。

你能精确算出每个敌人受到的伤害吗?

样例输入

1
2
3
4
5
5
3
2 2 R
4 3 U
5 5 L

样例输出

1
2
3
4
5
0 0 1 0 0
0 1 2 1 1
0 0 1 0 0
0 0 1 0 0
1 1 1 1 1

矩阵坐标
可以看见吗?看不见记得反馈

题解

纯纯考验耐心

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int q = scan.nextInt();
int square[][] = new int[n][n];
int x = 0;
int y = 0;
String op = "";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
square[i][j] = 0;
}
}
for(int i=0;i<q;i++){
x = scan.nextInt();
y = scan.nextInt();
op = scan.next();
if(op.equals("U")){
for(int j=0;j<=x-1;j++){
square[x-1-j][y-1]++;
}
}else if(op.equals("D")){
for(int j=0;j<=n-x;j++){
square[x-1+j][y-1]++;
}
}else if(op.equals("L")){
for(int j=0;j<y;j++){
square[x-1][y-1-j]++;
}
}else if(op.equals("R")){
for(int j=0;j<n-y+1;j++){
square[x-1][y-1+j]++;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(square[i][j]);
if(j!=n-1){
System.out.print(" ");
}
}
System.out.print("\n");
}
}
}

攻略迷宫

小A准备挑战一个副本,他的角色拥有x点生命值,boss 每第y秒攻击一次,每次对角色造成1点伤害,当角色生命值为零时游戏结束,不会再受到攻击。现在给你一个时间段,假如小A从这个时间段开始时着手攻略副本,小A想知道他的角色在这段时间内会承受多少次攻击,以及最后一次被攻击的时间。

样例输入

1
2
3
5 60
18:00:00
18:04:30

样例输出

1
2
4
18:04:00

题解

纯纯考验耐心

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.sql.Time;
import java.util.*;

public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
String a = scan.next();
String b = scan.next();
Time timea = Time.valueOf(a);
Time timeb = Time.valueOf(b);

int sec = (timeb.hashCode()-timea.hashCode())/1000;
int i = -1;

while(sec>=0){
sec = sec-y;
i++;
if(i>=x){
break;
}
}
timea.setTime(timea.hashCode()+(i*y*1000));
System.out.println(i);
System.out.println(timea);
}
}

去掉重复的数据

李冠著加油!等你的代码!

  • 标题: 郑州轻工业大学2022级程序设计班级天梯赛基础题题解
  • 作者: anzai249
  • 创建于 : 2022-12-10 21:53:21
  • 更新于 : 2023-08-22 09:31:19
  • 链接: https://anzai.sleepingbed.top/archives/posts/8bdbda59.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论