选择题
1.D 【解析】打印机属于输出设备,它将一些信息通过打印机打印出来。扫描仪,键盘,鼠标属于输入设备。
2.D 【解析】 A,B,C选项的十进制数值都是
,D选项的数值是
。
3.D 【解析】
4.B 【解析】 广域网的缩写是
,局域网是
,城域网是
。
5.B 【解析】 常识,要对信息学竞赛的背景有所了解。背景:1984年邓小平指出:“计算机的普及要从娃娃做起。”中国计算机学会于1984年创办全国青少年计算机程序设计竞赛(简 称:NOI),当年参加竞赛的有8000多人。
6.A 【解析】首先我们要知道CapsLock是键盘上用于切换大小写得键。例如,你们来输入的是小写的a,如果你按了CapsLock键,输出的就是大写的
。模拟题目中的规矩,可以得到循环:
。其中每八个字母一个循环。
,那么输出的就是循环节的第一个字符
。
7.A 【解析】 节点总数为:
0
1
…
h,接下来的问题就是如何化简这个等比数列了。设
0
1
…
h,则
1
2
…
3,
h+1
,化简一下就是
h+1
。
8.A 【解析】 基数排序是根据每一个数位的大小进行排序的,类似于桶排序的思想。而冒泡排序,堆排序和直接插入排序都是基于比较的。
9.A 【解析】我们可以选用递推的方法,设f[i]为i个数比大小的最小次数,
。含义就是对于每一组数,取两个数比大小要
次,对于剩下的
个数要
次,一次最大,一次最小,所以要
次,n=3-10的数据分别是
,带入得A (好吧我也不是特别会)
10.B【解析】NOIP原题,不断的出现重复和递归的结构十分相似。
11.A【解析】画图,略。
12.B【解析】对于我们所要求的S,相当于一个
位的二进制位,
表示取,
表示不取,则共有
10
种方案,或者暴力一点,
,显然这两种方法都是可行的;对于T,显然是10选7的组合数,即
,那么
,选择答案B。
13.B【解析】求10000的欧拉函数,根据唯一分解定理,
4
4,那么就可以直接根据公式,
14.B【解析】树状数组
运算,求二进制位有多少个
。当然考场上最简单的方法莫过于带一个数进去了,算完后就知道ACD算不出答案。
15.B【解析】结构类似于桶,先进后出,属于数据结构栈。
问题求解
第一题.去了 没去 没去 没下雨
【解析】
从中我们知道一个规律,如果
都成立那么
成立,若C不成立,A和B中有一个成立的时候另一个便不成立。
因为丙去了,根据已知
可知丁不去。
根据
,如果丁和甲同时不去,说明丙也不能去,而因为丁去了,只有让甲去丙才能不去。
根据
,如果乙去则丁去,当丁没去说明乙也没有去。
根据
,如果下雨且乙不去那么甲也不去,而乙去了,甲却没去,说明没有下雨。
我们要根据已知去推,这也是一道比较简单的逻辑题了。
第二题.
【解析】
我们从位数去考虑。
1位数:
个。只有一个数字
.
2位数:如果十位
,那么有
个(后面都接上1位的方案数);如果十位是
,则有
个数字(
后接任意数组均可)。共有
(个)
3位数:如果百位
,那么有面可以跟个位有数字
的(如
),也可以跟十位有数组
的(如
),共
种;若百位是
,有
种方案。共有
(个)
4位数:
开头有
(个);
开头有
,共
个;共有
个。
共计:
(个)
阅读程序写结果
1.
【解析】程序的左右是扫描字符串的每一个字符,使得每一个大写字母ASC码+1,或者变成刚刚比它大1(或后面)的大写字母。
2.
【解析】程序的作用是从1-14种寻着是否存在数i,使得
2
(或
2 %
),通过手动计算不难发现满足条件的数字是
;共计
个数,因此答案是
。
3.
【解析】这是一道递归的计算题,如果直接这么做显然显得麻烦了。因此我们可以通过画二维表的方式来求解这个答案。
对于第0行,其大小为该纵坐标。
对于第0列,其大小为该横坐标对于3取模的值。
对于任何一个非0坐标,其大小为上面的数值加上左上角的数值减去左边的数值。
我们可以采用递推的方法解决。
4.
【解析】这道题就是一个模拟链表的过程,查找有多少个联通快。仔细模拟,发现是6个。
完善程序
1.最大公约数之和 答案:i * i; n/i; return a; a%b; ans+gcd(a[i],b[i])
【解析】 题目的过程就是先找到所有的因数,再进行累加。
我们首先看第一段,有一个函数的名称叫做getDivisor,其实就是求解每一个n的因子。
依照题意,时间复杂度是(Osqrt(n)),那么我们在每一因子i的时候就是1-sqrt(n)这个区间来枚举的。对于最大情况,只有i * i=n,超过就不满足时间复杂度和枚举的要求了,因此第一空所填的就是i * i。当枚举的时候如果这个数是i的因子那么就接着统计。以36为例,i是从1-6来枚举的,如果枚举到2,那么因子18就是通过36/2,或者是n/i来得到;特别的,当i=6的时候,不需要操作,此时n=i*i,即n/i=i时不需要进行操作,所有第二空所填的是n/i。需要注意,尽管使用sqrt函数仍然属于等价写法,但是程序中并没有加载cmath库,因此这么写是错误的。
再看求去最大公因数的过程gcd,这就是一个模拟辗转相除法的过程。复杂度是O(logMAXAB)级别的,因此不要写成是辗转相减法。如果余数是0就返回a,那么第三空就是return a;否则继续取模,因此第四空是a%b。
接下来就是累加答案,累加每一个质因子即可,存在ans上面。因此第五空是ans+gcd(a[i],a[j])。
2.链表 答案:a[x]=i;i+1;R[a[i]];a[i];R[i]
【解析1】套路法(分数8-14)
空1:唯一可行的两个答案a[i]=x和a[x]=i,若是前者可直接cin>>a[i]代替,故答案为后者。
空2:L是i-1,那么R是指向右节点的,上下符号相反,必然是i+1
空3/4:上下文对称,L和R恰好反一下。例如第一句是L[R[a[i]]]=L[a[i]];第二句是R[L[a[i]]]=R[a[i]],根据双向链表的对称性很容易得到答案。
空5:套中套,很多人想到的是R[a[i]],符合上文的结构,但是阴险的出题人一定会在最后一个空坑你一把,只让你输出最简单的R[i],你也可以考试的时候推一下。
【解析2】理解算法含义
第一空是标记每一个x出现的位置;
第二空双向链表R指向后面的元素,即i+1;
三四空是用于删除元素,这是链表最基本的删除操作,可以自行理解数据结构的实现;
第五空主要是输出每一个元素的答案,但是要按照输入的顺序进行输出因此要R[i]而不是R[a[i]],否则就按照了大小的顺序输出了。
试题答案
本人预估浙江分数线85上下
(不要14年那么恐怖就好)
浙江学子依旧生活在水深火热之中…
能在考场上拿到90分已经是很满意了。
若有疏忽或者意见望大家指正。