前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【蓝桥杯省赛】冲刺练习题【经典题目练习】倒计时【01】天

【蓝桥杯省赛】冲刺练习题【经典题目练习】倒计时【01】天

作者头像
红目香薰
发布2022-11-29 21:06:08
5900
发布2022-11-29 21:06:08
举报
文章被收录于专栏:CSDNToQQCode

1、Api运用题(日历Calendar)

题目:有邪教称1999年12月31日是世界末日,当然谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会…有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!!于是"谣言制造商"又修改为星期日…

1999年12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即XX99年)的12月31日正好是星期天(即星期日)? 回答年份即可

代码语言:javascript
复制
package action;

import java.util.Calendar;

public class demo3 {
	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();
		for (int i = 1999; i < 10000; i += 100) {
			calendar.set(Calendar.YEAR, i);
			calendar.set(Calendar.MONTH, 11);
			calendar.set(Calendar.DATE, 31);
			if (calendar.get(Calendar.DAY_OF_WEEK) == 1) {
				System.out.println(i);
				break;
			}
		}
	}
}

2、星辰大海

最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成。   共有四种方格:   ‘.’ 代表空地,curiosity可以穿过它   ‘#’ 代表障碍物,不可穿越,不可停留   ‘S’ 代表curiosity的起始位置   ‘T’ 代表curiosity的目的地   NASA将会发送一系列的命令给curiosity,格式如下:“LRUD”分别代表向左,向右,向上,向下走一步。由于地球和火星之间最近时也有55000000km!所以我们必须提前判断这一系列的指令会让curiosity最终处在什么样的状态,请编程完成它。

输入格式

  第一行是一个整数T,代表有几个测试样例   每个测试样例第一行是一个整数N(1<=N<=50))代表迷宫的大小(N*N)。随后的N行每行由N个字符串组成,代表迷宫。接下来的一行是一个整数Q,代表有多少次询问,接下来的Q行每行是一个仅由“LRUD”四个字母的组成的字符串,字符转长度小于1000.

输出格式

  对于每个询问输出单独的一行:   “I get there!”:执行给出的命令后curiosity最终到达了终点。   “I have no idea!”:执行给出的命令后curiosity未能到达终点。   “I am dizzy!”:curiosity在执行命令的过程中撞到了障碍物。   “I am out!”:代表curiosity在执行命令的过程中走出了迷宫的边界。 输入示例:

代码语言:javascript
复制
2
2
S.
#T
2
RD
DR
3
S.#
.#.
.T#
3
RL
DDD
DDRR

输出示例:

代码语言:javascript
复制
I get there!
I am dizzy!
I have no idea!
I am out!
I get there!

我的这个写法动脑少一些,推荐用搜索的方式编写。

代码语言:javascript
复制
package action;
import java.util.Scanner;

public class demo3 {
	static Scanner sc = new Scanner(System.in);
 
	public static void main(String[] args) {
		String[] arr = new String[999];
		int scount = 0;
 
		int a = sc.nextInt();
		for (int i = 0; i < a; i++) {
			int b = sc.nextInt();
			char[][] bb = new char[b][b];
			for (int j = 0; j < b; j++) {
				bb[j] = sc.next().toCharArray();
 
			}
 
			int c = sc.nextInt();
			String[] cc = new String[c];
			for (int j = 0; j < cc.length; j++) {
				cc[j] = sc.next();
			}
			char[][] ccc = new char[c][1000];
 
			for (int j = 0; j < c; j++) {
				for (int j2 = 0; j2 < cc[j].length(); j2++) {
					ccc[j][j2] = cc[j].charAt(j2);
				}
			}
 
			for (int j = 0; j < c; j++) {
				int h = 0;
				int s = 0;
				zb: for (int j2 = 0; j2 < 1000; j2++) {
					zc: for (int k = 0; k < b; k++) {
						for (int k2 = 0; k2 < b; k2++) {
							if (j2 == 0 && bb[k][k2] == 'S') {
								h = k2;
								s = k;
								break zc;
							}
						}
					}
					if (ccc[j][j2] >= 'A' & ccc[j][j2] <= 'Z') {
						if (ccc[j][j2] == 'L') {
							h--;
							if (s < 0 | s == b | h < 0 | h == b) {
								arr[scount++] = "走出了迷宫的边界!";
								break zb;
							} else if (bb[s][h] == '#') {
								arr[scount++] = "执行命令的过程中撞到了障碍物导致眩晕!";
								break zb;
							} else if (bb[s][h] == 'T') {
								arr[scount++] = "抵达终点!";
								break zb;
							}
						} else if (ccc[j][j2] == 'R') {
							h++;
							if (s < 0 | s == b | h < 0 | h == b) {
								arr[scount++] = "走出了迷宫的边界!";
								break zb;
							} else if (bb[s][h] == '#') {
								arr[scount++] = "执行命令的过程中撞到了障碍物导致眩晕!";
								break zb;
							} else if (bb[s][h] == 'T') {
								arr[scount++] = "抵达终点!";
								break zb;
							}
						} else if (ccc[j][j2] == 'U') {
							s--;
							if (s < 0 | s == b | h < 0 | h == b) {
								arr[scount++] = "走出了迷宫的边界!";
								break zb;
							} else if (bb[s][h] == '#') {
								arr[scount++] = "执行命令的过程中撞到了障碍物导致眩晕!";
								break zb;
							} else if (bb[s][h] == 'T') {
								arr[scount++] = "抵达终点!";
								break zb;
							}
						} else if (ccc[j][j2] == 'D') {
							s++;
							if (s < 0 | s == b | h < 0 | h == b) {
								arr[scount++] = "走出了迷宫的边界!";
								break zb;
							} else if (bb[s][h] == '#') {
								arr[scount++] = "执行命令的过程中撞到了障碍物导致眩晕!";
								break zb;
							} else if (bb[s][h] == 'T') {
								arr[scount++] = "抵达终点!";
								break zb;
							}
						}
 
					} else {
						arr[scount++] = "老师付也不知道路了啊,游戏结束!";
						break zb;
					}
 
				}
			}
		}
		for (int i = 0; i < scount; i++) {
			System.out.println(arr[i]);
		}
	}
 
}

写一个【2048】·强化处理边缘值(虽然不难,代码多,相当于6个题)

代码语言:javascript
复制
package action;

import java.io.IOException;
import java.util.*;

/**
 * java控制台2048 2022年4月3日09:35:17
 * 上W左A下S右D
 */
public class demo {

	public static final int X = 4;
	public static final int Y = 4;
	public static int model[][] = new int[X][Y];
	public static int step = 0;
	public static boolean gameover = false;
	public static int enumM[] = { 2, 2, 2, 2, 4, 4, 4, 8 };
	public static void main(String[] args){
		Random ra=new Random();
		int randomX, randomY;
		randomX = ra.nextInt(X);
		randomY = ra.nextInt(model[randomX].length);
		model[randomX][randomY] = 2;

		randomX = ra.nextInt(X);
		randomY = ra.nextInt(model[randomX].length);
		model[randomX][randomY] = 2;

		randomX = ra.nextInt(X);
		randomY = ra.nextInt(model[randomX].length);
		model[randomX][randomY] = 4;
		randomX = ra.nextInt(X);
		randomY = ra.nextInt(model[randomX].length);
		model[randomX][randomY] = 2048;

		outPrint();
		while (!gameover) {
			int read;
			try {
				read = System.in.read();
				change(read);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	public static void outPrint() {
		for (int i = 0; i < X; i++) {
			for (int j = 0; j < Y; j++) {
				System.out.print("【");
				if (model[i][j] == 0) {
					System.out.print("    ");
				}
				if (model[i][j] > 0 && model[i][j] < 9) {
					System.out.print("  " + model[i][j] + " ");
				}
				if (model[i][j] > 9 && model[i][j] < 100) {
					System.out.print(" " + model[i][j] + " ");
				}
				if (model[i][j] > 99 && model[i][j] < 1000) {
					System.out.print(" " + model[i][j]);
				}
				if (model[i][j] > 999) {
					System.out.print(model[i][j]);
				}
				System.out.print("】");
			}
			System.out.println();
		}
	}

	public static void change(int dir) {
		switch (dir) {
		case 115:// S 下
			int[] xp4 = new int[Y];
			for (int i = 0; i < Y; i++) {
				boolean goon = true;
				while (goon) {
					int[] temp = new int[X];
					int tempIdex = X - 1;
					for (int j = X - 1; j >= 0; j--) {
						if (model[j][i] != 0) {
							temp[tempIdex--] = model[j][i];
						}
					}
					boolean hv = false;
					for (int j = X - 1; j > 0; j--) {
						if (temp[j] == temp[j - 1] && temp[j] != 0) {
							temp[j] = temp[j] * 2;
							temp[j - 1] = 0;
							hv = true;
						}
					}
					goon = hv;
					int is0 = 0;
					for (int j = X - 1; j >= 0; j--) {
						model[j][i] = temp[j];
						if (temp[j] == 0)
							is0++;
					}
					if (is0 > 0) {
						xp4[i] = 1;// 可插牌
					}
				}
			}
			// 插牌
			List<Integer> space4 = new ArrayList<Integer>();
			for (int j = 0; j < xp4.length; j++) {
				if (xp4[j] == 1) {
					space4.add(j);
				}
			}
			if (space4.size() == 0) {
				gameover = true;
				System.out.println("game over");
				System.exit(0);
			} else {
				int a = (int) (Math.random() * (space4.size()));
				Integer index = space4.get(a);
				for (int j = X - 1; j >= 0; j--) {
					if (model[j][index] == 0) {
						model[j][index] = enumM[(int) (Math.random() * enumM.length)];
						break;
					}
				}
			}
			outPrint();
			break;
		case 100:// D 右
			int[] xp = new int[X];
			for (int i = 0; i < X; i++) {
				boolean goon = true;
				while (goon) {
					int[] temp = new int[Y];
					int tempIdex = Y - 1;
					// 去空
					for (int j = Y - 1; j >= 0; j--) {
						if (model[i][j] != 0) {
							temp[tempIdex--] = model[i][j];
						}
					}
					boolean hv = false;
					// 合并
					for (int j = 0; j < Y - 1; j++) {
						if (temp[j] == temp[j + 1] && temp[j] != 0) {
							temp[j] = temp[j] * 2;
							temp[j + 1] = 0;
							hv = true;
						}
					}
					goon = hv;
					int is0 = 0;
					for (int j = 0; j < Y; j++) {
						model[i][j] = temp[j];
						if (temp[j] == 0)
							is0++;
					}
					if (is0 > 0) {
						xp[i] = 1;// 可插牌
					}
				}
			}
			// 插牌
			List<Integer> space = new ArrayList<Integer>();
			for (int j = 0; j < xp.length; j++) {
				if (xp[j] == 1) {
					space.add(j);
				}
			}
			if (space.size() == 0) {
				gameover = true;
				System.out.println("game over");
				System.exit(0);
			} else {
				int a = (int) (Math.random() * (space.size()));
				Integer index = space.get(a);
				for (int j = Y - 1; j >= 0; j--) {
					if (model[index][j] == 0) {
						model[index][j] = enumM[(int) (Math.random() * enumM.length)];
						break;
					}
				}
			}
			outPrint();
			break;
		case 119:// W 上
			int[] xp3 = new int[Y];
			for (int i = 0; i < Y; i++) {
				boolean goon = true;
				while (goon) {
					int[] temp = new int[X];
					int tempIdex = 0;
					for (int j = 0; j < X; j++) {
						if (model[j][i] != 0) {
							temp[tempIdex++] = model[j][i];
						}
					}
					boolean hv = false;
					for (int j = 0; j < X - 1; j++) {
						if (temp[j] == temp[j + 1] && temp[j] != 0) {
							temp[j] = temp[j] * 2;
							temp[j + 1] = 0;
							hv = true;
						}
					}
					goon = hv;
					int is0 = 0;
					for (int j = 0; j < X; j++) {
						model[j][i] = temp[j];
						if (temp[j] == 0)
							is0++;
					}
					if (is0 > 0) {
						xp3[i] = 1;// 可插牌
					}
				}
			}
			// 插牌
			List<Integer> space3 = new ArrayList<Integer>();
			for (int j = 0; j < xp3.length; j++) {
				if (xp3[j] == 1) {
					space3.add(j);
				}
			}
			if (space3.size() == 0) {
				gameover = true;
				System.out.println("game over");
				System.exit(0);
			} else {
				int a = (int) (Math.random() * (space3.size()));
				Integer index = space3.get(a);
				for (int j = 0; j < X; j++) {
					if (model[j][index] == 0) {
						model[j][index] = enumM[(int) (Math.random() * enumM.length)];
						break;
					}
				}
			}
			outPrint();
			break;
		case 97:// A 左
			int[] xp2 = new int[X];
			for (int i = 0; i < X; i++) {
				boolean goon = true;
				while (goon) {
					int[] temp = new int[Y];
					int tempIdex = 0;
					for (int j = 0; j < Y; j++) {
						if (model[i][j] != 0) {
							temp[tempIdex++] = model[i][j];
						}
					}
					boolean hv = false;
					for (int j = 0; j < Y - 1; j++) {
						if (temp[j] == temp[j + 1] && temp[j] != 0) {
							temp[j] = temp[j] * 2;
							temp[j + 1] = 0;
							hv = true;
						}
					}
					goon = hv;
					int is0 = 0;
					for (int j = 0; j < Y; j++) {
						model[i][j] = temp[j];
						if (temp[j] == 0)
							is0++;
					}
					if (is0 > 0) {
						xp2[i] = 1;// 可插牌
					}
				}
			}

			// 插牌
			List<Integer> space2 = new ArrayList<Integer>();
			for (int j = 0; j < xp2.length; j++) {
				if (xp2[j] == 1) {
					space2.add(j);
				}
			}
			if (space2.size() == 0) {
				gameover = true;
				System.out.println("game over");
				System.exit(0);
			} else {
				int a = (int) (Math.random() * (space2.size()));
				Integer index = space2.get(a);
				for (int j = 0; j < Y; j++) {
					if (model[index][j] == 0) {
						model[index][j] = enumM[(int) (Math.random() * enumM.length)];
						break;
					}
				}
			}
			outPrint();
			break;
		default:
			break;
		}
	}


}

软件类个人线上比赛手册(C/C++、JAVA 和 Python)

一、赛前准备

1.硬件要求

(1)带摄像头的笔记本电脑或者台式机电脑(不包含苹果电脑)。电脑系统须是

WIN7/8/10 或以上版本。

2)手机和手机支架。手机安装腾讯会议 APP,并配备上网流量卡,保证手机有不低于

5 小时续航时间,提前备好充电设备。

2.软件要求

1)电脑须安装谷歌浏览器或 360 浏览器(考前务必进行浏览器测试)。

2)根据自己报考的比赛科目,安装相应软件环境(请到蓝桥杯大赛官网“学习资料”

菜单下“资料文档”里下载)。

C/C++开发环境:Dev-cpp 5.4.0、C/C++ API 帮助文档

Java 开发环境:JDK 1.8、Eclipse-java-2020-06、API 帮助文档

Python 开发环境:Python 3.8.6、IDLE(Python 自带编辑器)

3)RAR 解压缩软件用于解压试题(5.71 版本以上)。

4)PDF 阅读器用于看题(务必测试是否能打开试题)。

3.网络要求

1)电脑:普通宽带网络即可,建议 10Mbps 以上。

2)手机:单独配备上网 4G/5G 流量卡。(比赛期间手机可连接无线网络。如遇断网

情况,必须在 3 分钟内连接手机的上网流量卡继续比赛并进入腾讯会议)。

说明:如未按要求准备,影响比赛成绩的责任,由选手本人承担。

4.考场环境要求

比赛前 15 分钟,选手将用于云监考的手机放置到侧面对电脑屏幕及自己半身的位置(自

己侧后方约 130 度的位置,如下图),并用手机登录准考证提供的腾讯会议号,以“学校名

称+姓名”命名,打开视频,调整监控画面,将麦克风静音,同时保持听筒有声音,方便在比赛过程中及时接收监考员的提示信息。如因听筒关闭,导致无法接收监考员提示信息,将

会发送红牌警告,影响最终考试成绩,由选手自行承担。比赛全程如遇断网情况,须立即在

3 分钟内连接手机的上网流量卡保持比赛电脑网络在线,同时保持腾讯会议视频实时在线状

态。如腾讯会议因手机没电,网络问题等原因掉线,监考员会在考试系统中发消息提醒重新

登录,请选手在考试过程中及时查看系统消息。腾讯会议掉线次数超过 3 次,或持续掉线时

间一次超过 5 分钟,发送红牌警告,影响最终考试成绩,由选手自行承担。

5.比赛违规行为包含但不限于

(1) 选手携带与比赛内容相关的材料或者存储设备参加比赛。

(2) 比赛期间选手上网查阅资料,登录搜索引擎、BBS 论坛等网站、抄袭或者协助他人

抄袭。

(3) 比赛过程中使用有助于发送或者接收信息功能的电子设备。

(4) 选手由他人冒名代替参加比赛。

(5) 在比赛过程中未经云监考员同意,擅自离开座位。

(6) 比赛过程中选手故意遮挡或者关闭摄像头。

(7) 比赛过程中使用微信、QQ 等即时通讯软件。(8) 比赛过程不服从监考人员安排与要求。

(9) 比赛期间选手关闭考试浏览器。

(10) 监控画面未按照比赛要求设置。

6.比赛注意事项

(1) 比赛当天须在 9 点准时登录比赛系统,不得提前登录

(2) 9 点开考后,30 分钟内未登录比赛系统和腾讯会议的选手视为弃考。

(3) 如选手比赛中遇断网超过十分钟则视为弃考,将由组委会结束其考试。

(4) 如去洗手间须在腾讯会议里用文字向云监考员报备同意,回来后须在腾讯会议

文字告知云监考员。

(5) 比赛过程中选手电脑和腾讯会议都必须全程联网,如果电脑断网需在 3 分钟内恢

复并向监考员报备。腾讯会议掉线次数超过 3 次,或持续掉线时间一次超过 5 分钟,发送红

牌警告,影响最终考试成绩,由选手自行承担。

注:考试期间设置红牌警告制度,确定 3 次违规即取消其比赛资格。

注意提前下载准考证。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Api运用题(日历Calendar)
  • 2、星辰大海
  • 写一个【2048】·强化处理边缘值(虽然不难,代码多,相当于6个题)
相关产品与服务
腾讯会议
腾讯会议(Tencent Meeting)为企业打造专属的会议能力,卓越的音视频性能,丰富的会议协作能力,坚实的会议安全保障,提升协作效率,满足大中小会议全场景需求。您可以使用腾讯会议进行远程音视频会议、在线协作、会管会控、会议录制、指定邀请、布局管理、同声传译等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档