非官方题解哦,官方题解
比赛题目
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T1.修改数字
> 知识点:多重单分支,双分支
题目:
小明很喜欢数字 1, 2, 3。 现在他获得了三个数字 a, b, c, 他可以进行最多一次操作,将其中一个数字变成任意数字。请问经过最多一次操作之后,三个数字 a, b, c 能否变成 1, 2, 3 (a, b, c顺序不能改变) 。
可以的话输出 YES, 否则输出 NO 。
简化:
其实就是 a,b,c 中有 2 个以上的数是 对 的即是 可以 ,否则为 不可以。
俺的方法:
和简化一样,就是记录 a,b,c 中对的数有几个,大于 2 输出YES,否则输出 NO 。
实在不会,你暴力判断也能过:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T2.小明的非递减数组
> 知识点: 单分支,FOR循环,一维数组
题目:
给定一个长度为 n 的数组 a, 现在小明可以对数组进行操作, 每次操作可以选择一个数字 i (1 ≤ i ≤ n) ,使得 aia_{i}ai 加 1。请问最少经过几次操作可以使得数组变成一个非递减数组。
非递减数组 : 对于任意的数字 对于任意的数字 i (2 ≤ i ≤ n) , 都满足 ai−1a_{i-1}ai−1 ≤ aia_{i}ai 。
简化:
其实就是经过几次+1可以是 a 数组成为一个 非递减数组 。
俺的方法:
比较 ai−1a_{i-1}ai−1 是否大于 aia_{i}ai ,如果大于 就说明这成不了 非递减数组,所以要更改这个值,同时计数;否则……没有否则。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T3.小明和视疲劳
> 知识点: 格式化输入,单分支,字符串,FOR循环
题目:
小明由于近期用眼过度,出现了很严重的视疲劳,具体表现是分不清大小写字母。
现在给你两个只包含大小写字母和空格的字符串 s, t (1≤∣s∣,∣t∣≤10510^5105 ),如果它们在小明眼里一样的话,输出 YES, 否则输出 NO。
俺的两种方法:
1.就是比字母嘛,先将字符串中的字母转成大写,再比俩字符串中的第 i 个的字母是否一样,不一样输出 NO,如果全都一样那就输出YES。
2.比较特殊,难懂,就是比较两个数组的第i个元素,这时会遇到两种情况:
* 都是 大写 或 小写,这时候它们俩相减(ASCLL码)为0
* 一个是 大写,一个是 小写,这时候它们俩相减(ASCLL码)为32
* 如果都不满足,那么输出 NO
看不懂的话,你把小写转大写好了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T4.卡牌
> 知识点:多分支,WHILE循环
题目:
小明现在手上有这样一副特殊的卡牌, 其中一共有四种卡牌:
a 张数值是 1 的卡牌, b 张数值是 2 的卡牌, c 张数值是 3 的卡牌, d 张数值是 4 的卡牌。
现在小明可以从中选取 k 张卡牌, 请问这 k 张卡牌的数值总和的最大值是多少?
俺的方法:
就是尽可能那大的,拿不了最大的,就拿次大的;拿不了次大的,就拿再次大的……直到 k 为 0 或 a,b,c,d 都为 0 结束。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T5.小明和九宫格
> 知识点:单分支,FOR循环,二维数组,函数
题目:
小明有一个很喜欢的九宫格,3 行 3 列一共 9 个数字。
现在给定一个 n 行 m 列的二维矩阵 a, 请问其中是否存在一个子矩阵和小明喜欢的九宫格相等, 存在的话输出 YES, 否则输出 NO。
简化:
就是再 a 数组里找数组 b.
俺的方法:
暴力查找,直接AC。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T6.进制转换
> 做这道题,你可以看一下这个
> 知识点:双分支,FOR循环,DO-WHILE循环,函数,动态数组,反转数组
题目:
给定两个十进制数字 a, b 和一个数字 r(2≤r≤36)。
对于数字 a 和 b, 将其转化为 r 进制数, 在 r 进制中,大于等于 1010 的数字使用 A-Z 的字母进行表示。
将两个数字转化为 r 进制以后, 输出其中字典序较大的一个数。
直言啦,就是用这个中的 ZS_D_N() 即可完成了。
俺的方法:
将 a, b 转成 r 进制,再存在俩 string 里,然后判断输出
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
对你有帮助吗?能给我一个小赞嘛?
恭喜你完成了所有题目!太棒啦!我祝大家每题AC!大家一起加油!
打个广告吧!
* 广告1
* 广告2
* 广告3
* 广告4
拜拜!
@AC君,虽然是非官方题解,但还是求个顶吧!