深高北校内赛题解
2025-03-15 13:17:27
发布于:广东
T1.乘法练习
使用整数类型读入数字,将数字对 取余得到后三位的数字,然后将读入的数字整除 。重复这个操作即可分出三个整数。
T2.TJZ之王
使用六个变量分别读入 009
和 xiaoshuai
的三轮分数,分别比较计算胜者是谁。
T3.团伙首领
使用桶数组纪录有多少个首领编号,即为团伙数量
T4.不与最大数相同的数字之和
先遍历一遍数组找出最大值,再遍历一遍数组把不等于最大值的数都加起来,最后输出
T5.蛇皮矩阵
蛇皮矩阵是一种特殊的矩阵填充方式,其特点是每一行的填充方向交替变化。具体来说,奇数行从左到右填充,偶数行从右到左填充。
我们可以按照以下步骤来实现:
- 初始化矩阵:创建一个
n x n
的二维数组来存储矩阵。 - 填充矩阵:
- 使用一个变量
num
来记录当前要填充的数字,初始值为1。 - 遍历每一行,奇数行从左到右填充,偶数行从右到左填充。
- 使用一个变量
- 输出矩阵:按照格式输出矩阵。
T6.颜料覆盖
-
对于每个区域(矩阵的每一行),找到涂抹强度最大的一次是哪一次。
-
在这一次之前,统计有多少次涂抹(不计算未涂抹的情况)强度比这一次小。
核心逻辑是通过遍历每一行的涂抹记录,动态更新最大值及其位置,并统计在最大值之前的有效涂抹次数。
T7.上台阶2
题目理解
假设有一个楼梯,总共有 级台阶。你一开始站在地面(第 0 级台阶),每次可以迈 1 级、2 级或 3 级台阶。问:爬到第 级台阶,有多少种不同的走法?
比如:
- 如果 ,你可以用以下 4 种方式爬上去:
- 1 级 + 1 级 + 1 级
- 1 级 + 2 级
- 2 级 + 1 级
- 3 级
所以答案是 4。
解题思路
我们可以用“分步思考”的方法来解决这个问题。假设你想爬到第 级台阶,那么你最后一步可能是迈了 1 级、2 级或 3 级台阶。那么:
- 如果你最后迈了 1 级台阶,那么你之前一定是从第 级台阶上来的。
- 如果你最后迈了 2 级台阶,那么你之前一定是从第 级台阶上来的。
- 如果你最后迈了 3 级台阶,那么你之前一定是从第 级台阶上来的。
所以,爬到第 级台阶的总方法数,等于爬到第 级、第 级和第 级台阶的方法数之和。
具体步骤
-
初始化:
- 设一个数组
dp
,其中dp[i]
表示爬到第 级台阶的方法数。 - 初始条件:
dp[0] = 1
,因为在地面(第 0 级台阶)只有一种方法,就是不迈步。
- 设一个数组
-
递推计算:
- 对于每一级台阶 (从 1 到 ),计算
dp[i]
:- 如果 ,则
dp[i] += dp[i - 1]
。 - 如果 ,则
dp[i] += dp[i - 2]
。 - 如果 ,则
dp[i] += dp[i - 3]
。
- 如果 ,则
- 对于每一级台阶 (从 1 到 ),计算
-
输出结果:
- 最终答案是
dp[N]
,即爬到第 级台阶的方法数。
- 最终答案是
这里空空如也
有帮助,赞一个