不知道大家做完感觉如何?
来自宁波的一封信
解题思路:
这道题没有什么需要注意的,直接复制题干中的文本再通过cout语句输出即可。亲身经历告诉大家,真的不要太倔强自己打一遍文字,直接复制下来就行,千万不要自己打字,万一错了都不知道!!!!!
拼图分类
题目大意:
拼图复杂度和拼图等级之间的关系:
1. 拼图复杂度在1-3(包括1和3)之间 - 简单。
2. 拼图复杂度在4-7(包括4和7)之前 - 中等。
3. 拼图复杂度在8-10(包括8和10)之间 - 困难。
现在,ikun和小黑子会告诉你每一块拼图的色块难度,请根据以上关系对拼图进行分类。
解题思路:
对于这道题而言,通过三个if-else语句判断是否在题目中所包含的区间即可。同时由于这里使用的是else if语句,因此不需要再次判断区间的开头,只需要判断区间的结束即可。参考代码如下:
等差数列
题目大意:
若一些数字是按照一定的规律进行排列的,那么这些数字的排列就可以被称之为数列。其中,有一种很神奇的数列,这个数列的每一个数字和这个数字后面的数字的差都是一样的。例如数列:1 3 5 7 9 10,这里的每个数字都比后一个数字小2。像这样的数列被称之为等差数列。现在请你写出一个从0开始,每两个数之间的差为K的长度为N的等差数列。
解题思路:
本题的思路不难,只需要对变量从0开始每次累加即可,并创建变量i来记录数列中的长度。
本题的话需要注意的一点是数据范围,虽然题目中保证K和N都小于int类型所能存储的最大限额,但是并不能排除当计算等差数列中,数列中的其中一项会超出int类型。例如数列:
虽然这个数列中每一个的差都小于int类型,数列的长度也小于100,但不能排除数列中的后几项会有超出int的风险。因此需要使用long long作为替代。本题的参考代码如下:
汽车加油
题目大意:
又是一个阳光明媚的早晨,Macw和他最好的朋友Vincent一起来到了天目山观看天目山的风景。可谁又曾想,天目山的山路蜿蜒崎岖,车子没开一会儿就快没油了。于是,Macw拿出他的手机查看了附近的几所加油站,每所加油站都标注了这所加油站的离Macw和Vincnet的距离。Macw想知道,有多少所加油站他们可以在汽车耗尽所有油之前到达、以及离Macw最近的加油站是哪一所加油站。
解题思路:
这道题的思路依然不难,但本题有两个难点:
1. 难点一:如何求得答案。
每次读入一个加油站的坐标后,就判断这个加油站的距离是否小于等于汽车最多能开的距离,如果可以的话就将计数器total的值增加一。最后判断total是否为0,如果为零输出0和so sad。否则正常输出结果。
2. 难点二:如何记录最近的一所加油站。
对于求最近的一所加油站,可以通过创建一个变量min来记录最近的一所加油站距离Macw的位置,再通过变量min_location来记录最近的一所加油站的编号。最开始,将min设置为int的极限表示目前还没有答案。接下来遍历每次输入的加油站的距离,如果输入的加油站距离比当前所记录的min小,就更新min和min_location。
本题的参考代码如下:
海拔的高低变换
题目大意:
在Macw和Vincent爬山的时候,山路一直都是弯来弯去的,一会上坡一会儿下坡。Vincent坐在副驾驶都无聊透了,就拿起了他的手机在看汽车的海拔。Vincent拿出了他的纸和笔,记录了他和Macw每走一个单位距离时的海拔高度。终于,经历了将近2个小时的车程,他俩终于到达了山顶。到达山顶后,Vincent打开自己的笔记本翻看自己记录的海拔信息,他想知道自己所经过的这连续的路程内,有多少次海拔的变换。(忽略头和尾)
解题思路:
本题的核心解题思路在于记录上每个海拔坐标之前的一个海拔坐标,如果这个点的海拔坐标和上一个点的海拔坐标不同,则将答案total的值增加,意为海拔的高度产生了变化。
参考以下代码,下通过last变量记录上一个海拔的高度,n代表记录w的海拔信息的数量,t是每次输入海拔时用作判断的临时变量。其中,本题有一个特殊判断地方在于,由于第一次输入的海拔无法跟前一个海拔进行比较,因此就直接更新last变量即可,不需要再将total的数量增加。这也就是为什么题目中特别提到忽略头和尾这个要求。
此外,本题请使用long long用于存储数据(题干中有提及),否则有可能会出现数据超限的情况。
最长的平稳山路
题目大意:
在Macw和Vincent爬山的时候,山路一直都是弯来弯去的,一会上坡一会儿下坡。Vincent坐在副驾驶都无聊透了,就拿起了他的手机在看汽车的海拔。Vincent拿出了他的纸和笔,记录了他和Macw每走一个单位距离时的海拔高度。终于,经历了将近2个小时的车程,他俩终于到达了山顶。(这个题干跟海拔的高低变换一模一样)
到达山顶后,Vincnet打开自己的笔记本翻看自己记录的海拔信息,他想知道自己所经过的一段连续的路程内,最长的平稳山路的长度是多少,这段平坦路径的海拔是多少。其中,平稳山路指的是在一个连续的区间内,海拔没有发生过任何的变化。
解题思路:
这道题作为“海拔的高低变换”这道题的延伸题目,整体的思路与上一道题类似:也是通过last变量用于记录上一个点的海拔高度,如果上一个点的海拔高度与当前点的海拔高度相同,则可以认为这个点和之前的点可以构成一段平稳山路。
参照以下代码,last变量用于记录上一个点的海拔坐标,tmp用于记录与上一个点所能构成的最长的平稳山路的长度,ans表示的是最长的平稳山路的长度,ans_altitude表示的是最长的平稳山路的海拔高度。
通过一个for循环来遍历每一次输入的进去的海拔高度,如果现在的海拔高度跟前一个海拔高度相同(忽略第一个),则将tmp+1。如果现在的海拔高度跟前一个海拔高度不相同,则判断是否需要更新答案,同时将tmp的值设定为1,表示无法与前几个海拔构成平稳山路,只能自己自成一段平稳山路。
同时,由于本题要求在当有多个最长的平稳山路时,输出海拔最低的那一个,因此需要特殊判断一下:如果当前的tmp等于所记录的最长的平稳山路,同时当前的海拔高度比之前记录的最长的平稳山路要低,则更新答案。