涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:八月GESP_Python打卡题目 “Python一级”备考指南 “Python二级”备考指南 “Python三级”备考指南 “Python四级”备考指南
【提交】
https://www.luogu.com.cn/problem/B3838
【问题描述】
小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能通过编程帮他做到吗?
【输入描述】
输入 4 行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为结束时刻的小时,第四行为结束时刻的分钟。输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用 24 小时制,即小时在 0 到 23 之间,分钟在 0 到 59 之间。
【输出描述】
输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
【样例输入1】
9596【样例输出1】
1【样例输入2】
95100【样例输出2】
55参考程序:
'''[GESP202306 一级] 时间规划https://www.luogu.com.cn/problem/B3838'''h1 = int(input())m1 = int(input())h2 = int(input())m2 = int(input())print(h2 * 60 + m2 - h1 * 60 - m1)【提交】
https://www.luogu.com.cn/problem/B4412
【问题描述】
小 A 想绘制一个菱形。具体来说,需要绘制的菱形是一个 行 列的字符画, 是一个大于 的奇数。菱形的四个顶点依次位于第 行、第 列、第 行、第 列的正中间,使用 # 绘制。相邻顶点之间也用 # 连接。其余位置都是 .。例如,一个 行 列的菱形字符画是这样的:
..#...#.#.#...#.#.#...#..给定 ,请你帮小 A 绘制对应的菱形。
【输入描述】
一行,一个正整数 。
【输出描述】
输出共 行,表示对应的菱形。
【样例输入1】
3【样例输出1】
.#.#.#.#.【样例输入2】
9【样例输出2】
....#.......#.#.....#...#...#.....#.#.......#.#.....#...#...#.....#.#.......#....【数据范围】
对于所有测试点,保证 并且 为奇数。
参考程序:
'''[GESP202509 二级] 菱形https://www.luogu.com.cn/problem/B4412'''n = int(input())center_x, center_y = n // 2, n // 2for i in range(n):for j in range(n):if abs(i - center_x) + abs(j - center_y) == n // 2: print("#", end='')else: print(".", end='') print()【提交】
https://www.luogu.com.cn/problem/B4066
【问题描述】
小杨有一个包含 个数字的序列 ,即 ,他想将其中大于 的数字都替换为序列的最大值,将其中小于 的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
【输入描述】
第一行包含两个正整数 ,含义如题面所示。
第二行包含 个数字,代表序列 。
【输出描述】
输出 个正整数,代表替换后的结果。
【样例输入1】
5 0-2 -1 0 1 2【样例输出1】
-2 -2 0 2 2【数据范围】
对于全部数据,保证有 , 。
参考程序:
'''GESP202412 三级 数字替换https://www.luogu.com.cn/problem/B4066'''n, k = map(int, input().split())lst = list(map(int, input().split()))max_value = max(lst)min_value = min(lst)for i in range(n):if lst[i] > k: lst[i] = max_valueelif lst[i] < k: lst[i] = min_valuelst = list(map(str, lst))print(" ".join(lst))【提交】
https://www.luogu.com.cn/problem/B4416
【问题描述】
对于 个整数构成的数组 ,如果对 都有 ,那么称数组 是一个连续段。
给定由 个整数构成的数组 ,你可以任意重排数组 中元素顺序。请问在重排顺序之后, 所有是连续段的子数组中,最长的子数组长度是多少?
例如,对于数组 ,可以将其重排为 ,有以下 个子数组:
其中除 以外的子数组均是连续段,因此是连续段的子数组中,最长子数组长度为 。
【输入描述】
第一行,一个正整数 ,表示数组长度。
第二行, 个整数 ,表示数组中的整数。
【输出描述】
一行,一个整数,表示数组 重排顺序后,所有是连续段的子数组的最长长度。
【样例输入1】
41 0 2 4【样例输出1】
3【样例输入2】
99 9 8 2 4 4 3 5 3【样例输出2】
4【数据范围】
对于 % 的测试点,保证 。
对于所有测试点,保证 ,。
参考程序:
'''[GESP202509 四级] 最长连续段https://www.luogu.com.cn/problem/B4416'''n = int(input())lst = sorted(list(set(map(int, input().split()))))i, max_v = 0, 0while i < len(lst): j = lst[i] k, cnt = 1, 1while i + k < len(lst) and lst[i + k] == j + k: cnt += 1 k += 1if cnt > max_v: max_v = cnt i += kprint(max_v)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
