官方题解 | 欢乐赛#61 题解
赛纲介绍
本次题目的总体题目难度如下,各位选手可以借此评估一下自身的技术水平
题目编号 题目名称 题目难度 T1 小明打酱油 入门 T2 小明的冬装 入门 T3 地标建筑 入门 T4 小明的循环字符串 入门 T5 小明的群山环线 普及- T6 小明的数字选取 普及-
T1 小明打酱油
题目大意
有 nnn 个空的瓶子,一个瓶子可以装下 aaa 毫升的酱油, 现在酱油铺剩下的酱油一共只有 bbb 毫升酱油了, 问最多可以装满几个空瓶子带回家?
题解思路
最多可以买的酱油瓶数为 b/ab / ab/a 瓶,但是瓶子只有 nnn 瓶, 因此答案不能超过 nnn ,答案为 $min(n, b / a) $ 。
参考代码
T2 小明的冬装
题目大意
需要衣物提供的温暖度累计大于等于 nnn 点。现在小明可以购买的冬装包含大衣,围巾, 手套, 可以提供的温暖度为 a,b,ca, b, ca,b,c。在满足温暖度的前提下,输出需要的衣物内容。
题解思路
分支结构习题,依据题意逐个进行判断,在温暖值足够的时候输出对应的语句
参考代码
T3 地标建筑
题目大意
小明得到了当地 nnn 座大厦的高度数据。地标建筑的定义为,高度大于等于其他所有建筑高度的平均数的 222 倍, 请你按照输入的顺序把所有的地标建筑的高度全都输出。
题解思路
数据范围较小,可以直接枚举每一个建筑,然后循环遍历求解其他建筑高度的总和,从而得到其他建筑的平均高度sum/(n−1)sum / (n - 1)sum/(n−1) , 判断是否是地标建筑。
参考代码
T4 小明的循环字符串
题目大意
一个长度为 ∣s∣\lvert s \rvert∣s∣ 的字符串, 由小写字母,还有星号 * 构成, 对于每一个星号,小明可以自己选择一个小写字母来替换,请问在经过恰当的替换之后, 该字符串能够恰好是由若干个长度为 kkk 的循环节拼接构成的吗?
题解思路
判定是否是循环字符串,需要满足以下两个条件:
1. 字符串长度恰好是 kkk 的倍数。
2. 循环节同一位置出现的字符不能超过 111 种。
因此可以直接枚举循环节的每一个位置,统计记录一下字符出现的种类数量(星号不计入在内),如果不只一种的话则不是循环字符串。
参考代码
T5 小明的群山环线
题目大意
每一座山峰的顶上都有一个指向木牌,小明现在正在第 sss 座山峰上, 接下来他会进行 mmm 次徒步, 每次行动都会根据当前山顶上到数字进行徒步, 请问 mmm 次徒步后,小明最后会停留在哪一座山峰上。
题解思路
一道模拟的习题,我们需要编程模拟小明的每一次行动,根据当前所在山峰的位置来进行徒步;
当前脚下山峰为 sss 的情况下, 则下一次要去的山峰就是 s+a[s]s + a[s]s+a[s], 由于是环形排列的山峰, 因此记得将 sss 对 nnn 取余数。
参考代码
T6 小明的数字选取
题目大意
给定一个长度为 nnn的 数组,小明可以自由的在里面选出任意个数字。
但是小明希望选出的数字存在一定的共性,换句话说,他希望选出的所有的数字的最大公因数不为 111 。请问小明最多可以选择几个数字。
题解思路
我们可以枚举一下选出的元素最终可以得到的最大公因数 iii,那么所有选择的数字都会是 iii 的倍数。
本题中数字的值域是 1∼10001 \sim 10001∼1000, 因此可以直接从 222 到 nnn 枚举公因数 iii, 然后判定最多能选择多少数字。
参考代码