赛纲介绍
本次题目的总体题目难度如下,各位选手可以借此评估一下自身的技术水平
题目编号 题目名称 题目难度 T1 赛跑 入门 T2 撑杆跳 入门 T3 接龙 入门 T4 小明的等腰三角形计数 入门 T5 逃离丛林 普及- T6 超级拼装 普及-
T1 赛跑
题目大意
小明和他的朋友皓仔正在长度为 nnn 的环形的操场跑道上赛跑,小明的跑步速度 aaa 米每秒, 皓仔的速度维持在 bbb 米每秒 (b>a)(b > a)(b>a) ,
皓仔现在在小明前方 ccc 米处,问需要几秒钟他才可以再超过小明一次从而领先小明一整圈?
题解思路
现在已经领先了 ccc 米, 那还需要再跑出 n−cn - cn−c 米的差距可以实现套圈。皓仔的速度比小明快,因此每秒可以多跑 b−ab - ab−a 米, 那么想要套圈所需的时间就是 (n−c)/(b−a)(n - c) / (b - a)(n−c)/(b−a)。 (答案向上取整)
参考代码
T2 撑杆跳
题目大意
对于所有可以支撑小明体重的撑杆,寻找长度最大的并且输出。
题解思路
只需要遍历所有的撑杆,判断一下该撑杆能接受的体重是否大于等于小明的体重,可以的话更新一下撑杆长度的最大值。
参考代码
T3 接龙
题目大意
给定两个字符串 s1,s2s_1, s_2s1 ,s2 , 如果s1s_1s1 的最后一个字符, 恰好为 s2s_2s2 的第一个字符的话,那么我们称 s1s_1s1 和 s2s_2s2 可以进行接龙。
尝试将第 222 到第nnn个字符串接龙到第111个串后面,如果可以的话就进行接龙,不可以的话就舍弃掉。请问经过所有的接龙尝试后, 最终第一个字符串是什么样子的?
题解思路
从第 222 个串开始,每次将第一个字符和第一个串的末尾字符作对比, 如果能符合的话就进行接龙拼接,最后输出第一个字符串即可。
参考代码
T4 小明的等腰三角形计数
题目大意
给定 nnn 个数字, 请问在所有的三元组 i,j,k{i, j , k}i,j,k 里 (1≤i<j<k≤n)(1\le i < j < k \le n)(1≤i<j<k≤n), 一共有多少种选择可以拼出一个等腰三角形。
题解思路
等腰三角形需要满足两个条件:
1:是一个三角形
2:存在两条边相等
因此本题可以三重循环枚举所有的三元组 i,j,ki, j, ki,j,k, 然后判断对应的三条边是否可以组成一个等腰三角形
参考代码
T5 逃离丛林
题目大意
在一个二维矩阵里, 每走到一个点上就可以获得对应的灵力值。矩阵是循环的,也就是第 nnn 行再往下走就到了第一行, 第 mmm列往右走就到了第一列。 现在从 (x,y)(x, y)(x,y) 出发向右一直走或者向下一直走,问走几步之后积攒的灵气值可以大于等于 kkk。
题解思路
注意到 k≤1018k \le 10^{18}k≤1018, 也就是当 kkk 的值足够大的情况下,暴力的模拟运算会超时。
因此可以统计一下第xxx 行的灵气总数, 第 yyy 列的灵气总数。
当我们尝试出发向右一直走的情况下,那么可以直接做除法操作得到我们会在第 xxx 行完整的走几圈, 剩余的灵气值直接模拟求还需要几步就好。
出发向下一直走的情况同样是做除法操作,得到我们会在第 $$ 列完整的走几圈, 剩余的部分直接模拟求解。
参考代码
T6 小明的字符串排序
题目大意
小明把他的积木仓库是一个 n×nn \times nn×n 的网格, 他计划从中抓一把。小明可以选择一个点 (x,y)(x, y)(x,y) 并且获得和该点的曼哈顿距离在 DDD 以内的所有零件。
当前的机器人模型需要的零件一共有 mmm 种, 编号从 111 到 mmm ,各需要一个。编号为 000 的零件是万能零件,可以替代任何一种零件。
现在小明希望抓一把零件之后可以拼出最多的机器人。
题解思路
本题中我们可以先枚举所有的点,并且把该点抓一把之后能够拼出的机器人数量计算出来。
我们遍历整个二维数组, 然后对于当前的点 (i,j)(i, j)(i,j), 直接遍历所有点,并且记录下曼哈顿距离在 DDD 以内的所有的零件种类出现次数。
而后求解一下最大可以拼装的机器人个数
此时我们可以直接从小到大枚举机器人的个数,假设当前的个数为 ttt, 那么计算一下各种材料的数量缺口,如果缺口的总和数量小于等于万能零件的个数, 说明可以拼出 ttt 个机器人, 如果不行的话, 那么我们可以得到的最大的机器人数量就是 t−1t - 1t−1;
最后我们知道了每个店可以拼装的机器人最大个数, 遍历找到最大值并且输出对应的个数和坐标即可。
参考代码