试卷总分:100分
编程题 6题 100分
已知长方体的长、宽、高分别为 a、b、c。长方体体积V的计算公式为 V = abc。
请你计算长方体的体积。
三行,三个正整数 a、b、c。
一行,表示长方体的体积 V。
2 3 4
24
小杰在玩一款游戏,初始拥有 m 枚金币。游戏中有两个不同的商店,每个商店的消费规则各不相同:
武器商店:如果当前金币 ≥ a,则花费 a 枚金币购买武器。特殊规则:购买后,如果剩余金币是5的倍数,则返还3枚金币(幸运奖励)。
皮肤商店:如果当前金币 ≥ b,则花费 b 枚金币购买皮肤。特殊规则:购买后,如果剩余金币是7的倍数,则返还5枚金币(周年庆活动)。
请你计算小杰最后剩余的金币。
输入共 3 行,3 个正整数 m、a、b,分别表示初始金币和两个商店的消费金额。
输出 1 行,表示小杰最终剩余的金币数。
20 5 3
15
某通信公司需要在一条直线上安装无线信号发射器,来覆盖沿线的 n 个区域。每个区域用两个坐标点表示其起点和终点 [ai, bi]。公司希望知道最少需要安装多少个信号发射器,才能覆盖所有需要服务的区域。
每个信号发射器安装在某个点上,可以覆盖到该点所在的所有区域。
第一行一个整数n,表示需要覆盖的区域数量。 接下来 n 行,每行两个整数 ai 和 bi,表示第 i 个区域的起点和终点坐标。
输出最少需要安装的信号发射器数量。
5 1 5 3 8 6 12 10 15 13 18
3
样例解释: 最少需要安装 3 个信号发射器,例如放在坐标 5、12、18: 发射器放在 5,可以覆盖区间 [1,5] 和 [3,8] 发射器放在 12,可以覆盖区间 [6,12] 和 [10,15] 发射器放在 18,可以覆盖区间 [13,18] 这三个点刚好覆盖了所有给定的区间。
小明是一名音乐老师,他记录了一位学生 n 天的练琴进步情况。每天的进步程度用一个正整数表示,代表学生在该天的技能水平。
小明想知道这位学生最长的"连续进步期"有多长。所谓"连续进步期",指的是技能水平连续递增的时间段,即每天的水平恰好比前一天提高 1 点。
第一行,一个整数 n,表示记录的天数。 第二行,n 个整数 ai,用空格隔开,表示每天的技能水平。
一个整数,表示最长连续进步期的天数。
10 1 5 6 2 3 4 5 6 8 9
5
样例解释: 在记录中,有几段连续进步期: 从第 1 天到第 2 天:技能水平从 1 提高到 5,不是连续进步 从第 2 天到第 3 天:技能水平从 5 提高到 6,是连续进步(1 天) 从第 4 天到第 8 天:技能水平从 2 依次提高到 3,4,5,6,是连续进步(5 天) 从第 8 天到第 9 天:技能水平从 6 提高到 8,不是连续进步 从第 9 天到第 10 天:技能水平从 8 提高到 9,是连续进步(1 天) 其中最长的连续进步期是 5 天。
生物学家小林正在研究某种病毒的DNA序列变异。由于测序仪器偶尔会出现故障,有时会将同一个核苷酸重复记录多次,比如可能把序列"ACGT"错误记录为"ACCGGT"。
小林记得在一批测序样本中,有一个关键的DNA变异序列出现频率最高。为了找出这个关键变异,他决定先对每个DNA序列进行标准化处理:将连续重复的相同核苷酸压缩为单个,比如将"AAACCTG"压缩为"ACTG",将"GGAATT"压缩为"GAT"。然后统计压缩后各序列的出现频率,找出最常见的那个。
请你帮助小林分析这批DNA样本,找出关键的变异序列。小林向你保证压缩后出现频率最高的序列是唯一的。
第一行一个整数n表示共有n个DNA序列样本。 接下来 n 行,每行一个字符串,表示一个DNA序列。
输出数据只有一行,包含一个字符串,表示压缩后出现次数最多的DNA序列。
3 QAAQQQQ QWWWWQ QQQQAQ
QAQ
样例解释: "QAAQQQQ"压缩成"QAQ" "QWWWWQ"压缩成"QWQ" "QQQQAQ"压缩成"QAQ" "QAQ"出现了两次,"QWQ"出现了一次,所以"QAQ"出现次数最多。
城市规划局需要分析一张城市地图,以识别出不同的城市区划。地图被表示为一个 n×m 的矩阵,其中数字0表示自然保护区或水域(非城市区域),而数字 1 到 9 表示不同密度的城市建设区域。
定义一个"城市区划"为:任何两个城市建设区域(数字 1−9)如果在上、下、左、右四个方向上相邻,则它们属于同一个城市区划。现在需要计算给定地图上总共有多少个相互独立的城市区划。
第一行两个整数 n 和 m,表示地图的行数和列数。 接下来 n 行,每行一个长度为 m 的只含字符 0 到 9的字符串,表示这个 n×m 的城市地图。
一行一个整数,表示地图上独立城市区划的总数。
4 10 0234500067 1034560500 2045600671 0000000089
4
样例说明: 在此地图上,有 4 个独立的城市区划: 1. 左上方的大片连接区域 2. 右上方的 "67" 区域 3. 右侧中部的 "71" 区域 4. 右下角的 "89" 区域