NOIP2017提高組預賽詳解

NOIP2017預賽終於結束了。
普遍反映今年的卷子難度較大,但事實上是這樣嗎?馬上我將爲您詳細地分析這張試卷,這樣你就能知道到底難不難。
對了答案,鄙人考得還是太差了,只有91分。
那麼下面我們就一起來看看這張試卷,共同反思,共同學習。
#一、單項選擇
1、從( )年開始,NOIP競賽將不再支持Pascal語言。
A、2020
B、2021
C、2022
D、2023
答案:C(感謝againfly-hk指正問題)
解析:官方公告
看了你就明白了,要注意2020年NOIP還是支持的。

2、在8位二進制補碼中,10101011表示的數是十進制下的( )
A、43
B、-85
C、-43
D、-84
答案:B
解析:補碼是什麼?就是一個二進制碼對每位取反,再加一,表示原數字的負數。所以我們倒退回去,先減一,得到10101010,再取反得01010101,轉換爲十進制爲85,所以就是-85.

3、分辨率爲1600*900、16位色得位圖,存儲圖像信息所需的空間爲( )
A、2812.5KB
B、4218.75KB
C、4320KB
D、2880KB
答案:A
解析:本來我可能不會做這一題,但由於大概兩個禮拜前,學校的微機課正好上到了這個,所以就得分了。
先解釋幾個名詞。
分辨率,表示長寬分別爲多少像素,所以相乘的結果是像素點的個數。
16位色,表示每個像素點用16位的數據去表示顏色,也就是2B(字節,不是2逼)。
所以大小就是1600*900*2/1024KB=2812.5KB

4、2017年10月1日是星期日,1949年10月1日是( )
A、星期三
B、星期日
C、星期六
D、星期二
答案:C
解析:如果你的歷史很好,就偷着樂吧!畢竟再怎麼出題,也不能篡改歷史。
但如果歷史不好呢?不好算嗎?也是很好算的。
首先兩者相差68年,然後,我們還要考慮閏年,閏年的個數應該是2017/4-1949/4=17(注意取整了),但是我們還要考慮整百年是不是400的倍數,很明顯2000是,所以是17個閏年,所以總的天數就是68*365+17,再對7取模就行。

5、設G是有n個節點、m條邊(n<=m)的連通圖,必須刪去G的( )條邊,才能是G變成一棵樹。
A、m-n+1
B、m-n
C、m+n+1
D、n-m+1
答案:A
解析:一棵樹一定只有n-1條邊,所以是m-(n-1)

6、若算法的計算時間表示爲遞推關係式:
T(N)=2T(N/2)+NlogN
T(1)=1
則該算法的時間複雜度爲( )
A、O(N)
B、O(NlogN)
C、O(Nlog^2N)
D、O(N^2)
答案:C
解析:最早,我也是不知道這類問題怎麼做,一直很懵逼,即使問老師,依然不知道什麼意思,但後來我自己琢磨出了這類題的做法。
具體做法是,遞推,得到通項,然後找到時間複雜度最大的一項,哪個就是答案。
本題遞推完後,你就會發現,有C選項中的那個式子,所以就是C

7、表達式a*(b+c)*d的後綴表達式是( )
A、abcd*+*
B、abc+d*
C、a
bc+*d
D、b+c*a*d
答案:B
解析:自己百度一下後綴表達式吧

8、由四個不同的點構成的簡單無向連通圖的個數爲( )
A、32
B、35
C、38
D、41
答案:C
解析:這道題是一道簡單的計數題
試想一下,構成一個四個節點的無向連通圖至少需要幾條邊?很明顯是3條,也就是說是一棵樹,所以4,5,6條邊也可以,所以答案應該是C(3,6)+C(4,6)+C(5,6)+C(6,6)-4,表示有3,4,5,6條邊的種數之和,但爲什麼要減4呢?因爲三條邊的情況下有四種情形不行,即連成了一個三個節點的環,所以排除這種情況就好了。

9、將7個名額分給4個不同的班級,允許有的班級沒有名額,有( )種不同的分配方案。
A、60
B、84
C、96
D、120
答案:D
解析:因爲名額相同,班級不同,所以採用“插板法”。七個名額,一共有8個空可以插。先考慮中間兩個班不爲空的情況,是C(3,8),再考慮中間兩個班級有一個爲空的情況,那麼就是C(2,8)*2,因爲有兩個板重合,所以可視爲一個板,有因爲有可能中間靠左的班級爲空,也可能是中間靠右邊的班級爲空,所以要乘2。最後是中間兩個班都爲空,那麼此時只有一個板,所以是C(1,8),把三個數加起來即可。
這道題的解析是基於大家對插板法有了解的前提,如果大家不瞭解,自行百度。

10、若f[0]=0,f[1]=1,f[n+1]=(f[n]+f[n-1])/2,則隨着i的增大,f[i]將接近於( )。
A、1/2
B、2/3
C、(√5-1)/2
D、1
答案:B
解析:首先,給像我一樣的蒟蒻的建議:考試時間也不多,一到選擇題分值又很少,所以,你不妨試着寫該數列的前幾項,然後就能看出答案了。這樣的話省時又能得分,對於像我一樣的蒟蒻來說再好也不過了。
那麼,對於大神,你可以求一下通項,再求一下極值,就能得出答案,如果你足夠熟練,也不是很慢,在這裏就不演示了,畢竟打數學符號也很麻煩。

試題鏈接
答案鏈接
這裏把試題和答案都給大家了,下面的試題將不會給題目,自己看一下,畢竟博主還要準備複賽。
感謝各位的理解。

11、答案:D
解析:這道題還是很簡單的,既然兩個序列都有序,那麼我們只需要從兩個序列的小端比較,依次把小的數放入新序列即可,基本上是比較一次放一個數,那麼比較次數的差異出現在哪呢?就在於兩個序列當中有一個爲空時,剩下的一個序列剩餘元素的個數,因爲這些數字是不需要比較的,可以直接放入新序列,因爲他本身就是有序的。所以剩的數字越少,則通過比較放入的數字越多,比較次數越多,所以剩下數字最少爲一個,所以比較次數最多爲2n-1

12、答案:D
解析:我們先看第一個空,是在if中的,而if的條件是,X和Y的質量不相等,那麼假幣肯定在X和Y中,所以我們只要把搜索範圍鎖定在X和Y的並集就行,所以我們選擇a這個語句,其實這裏答案已經出來了,但我還是要繼續講完(良心博主)
第二個空前面是個else,那就相當於取if中相反的條件,也就是X和Y質量相等,那麼很明顯假幣在Z中,所以我們就將搜索範圍鎖定在Z,所以是語句b
第三個空,很顯然就是求一下搜索範圍的元素個數,便於判斷搜索是否完成,或是繼續下面的分組。
這樣,這道題就講完了。

13、答案:A
解析:這道題就是動態規劃的經典問題,數字三角形,如果你瞭解過動態規劃,相信你能很輕易的做出這道題,這裏沒法拓展講動態規劃,所以就不做解釋了。

14、答案:D
解析:俗話說:“正難則反”(真的是俗話?),所以我們來求旅行失敗的情況,然後用1減去即得結果。
失敗的情況就兩種,1晚點(概率:0.1*0.8*1=0.08),2晚點(概率:1*0.2*0.9=0.18),所以總共是0.26,所以成功概率就是0.74.

15、答案:C
解析:如果不知道什麼是數學期望,那麼自己百度一下,提高姿勢水平。
我們沒必要算三分鐘的數學期望,我們只需算出一秒內的數學期望,再乘上180即可。那麼一秒內,一共就三種情況:沒得到球(概率A:19*19/20*20)、得到一個球(概率B:2*1*19/20*20)、得到兩個球(概率C:1*1/20*20),所以數學期望是:0*A+1*B+2*C=0.1,所以再乘上180,就得到18.

###單選題總結:今年單選題很多數學計算,所以耗時可能會比較長,但如果數學功底比較好,就會比較熟練,當然也並不是非常難。

#二、多項選擇題
1、答案:CD
解析:
排序算法
這裏的表格列得已經非常詳細了,補充一下,歸併排序最差時間複雜度也爲O(nlogn)

2、答案:C
解析:這道題目就非常簡單了,簡單模擬一下即可。

3、答案:D
解析:見上面表格。

4、答案:BD
解析:Frotran
自己看看這個,我相信除了這一個,其他三個大家應該都是很熟悉的。

5、答案:BD
解析:圖靈獎,不解釋,大家應該都知道,不知道自行百度。
王選獎,本來我是不知道這個獎的,但是在考試當天上午,我看信息學歷史時,看到了王選的介紹,所以,我才知道這個獎項。

###多選題總結:基本靠背……

#三、問題求解
1、答案:3
解析:按如下順序操作:
操作
這種題,自己試幾下就行了,基本上不會太難。

2、答案:4 9
解析:這題網絡流…………,能說超綱了嗎?
反正就算對網絡流一竅不通,你也差不多能寫出4,至於9,如果沒學過網絡流,就基本上靠天收,博主也沒打算看網絡流,如果各位想知道正解是什麼的話,就另請高明吧!(或者等我在複賽拿到安徽省前30名)

###問題求解總結:超綱超綱超綱……

#四、閱讀程序寫結果
1、答案:15
解析:就是一個簡單的遞推題,大家只要自己認真的推算一遍即可,一定要找一張乾淨的草稿紙,然後有條理的寫,這樣就能很容易的算出來了。博主第一遍就因爲很隨便,算出的答案是14,後來寫完後面的題,回頭找老師又要了幾張草稿紙,重算一遍,纔算正確。

2、答案:17 24 1 8 15
解析:就是一個幻方。
一眼看透本質後就很簡單了,只要自己把幻方填上就行。
這裏說一下幻方的定義,就是將1到n*n這些整數填入n*n的方格表,使得每一行、每一列、對角線上的數之和爲同一值。
填的方法也很簡單,我在小學時就和我的(女)同學探討過奇數規模的幻方的填寫方法(嗯?奇怪的強調……),具體方法如下:

  • 首先將1寫在第一行的中間。
  • 之後,按如下方式從小到大依次填寫每個數K(K=2,3,…,N*N):
  • 1.若(K−1)在第一行但不在最後一列,則將K填在最後一行,(K−1)所在列的右一列;
  • 2.若(K−1)在最後一列但不在第一行,則將K填在第一列,(K−1)所在行的上一行;
  • 3.若(K−1)在第一行最後一列,則將K填在(K−1)的正下方;
  • 4.若(K−1)既不在第一行,也不在最後一列,如果(K−1)的右上方還未填數,則將K填在(K−1)的右上方,否則將K填在(K−1)的正下方。

這樣就能寫出一個幻方了,然後輸出第一行即可。
還有注意,輸入雖然是3,但求的是5*5的幻方。

3、答案:8
解析:一眼看透本質:求逆序對。
然後就很容易的數出來了。
但是是怎麼看出來本質的呢?
本題和上一題這樣一眼看透本質,有兩種方法:1、看算法,是自己熟悉的某個算法,那麼恭喜你,你看透了本質。
2、自己先模擬幾下,發現規律,得出本質。
這樣的話解題就非常簡單了。

4、答案:1 3
2017 1
1 321
解析:很明顯第一個空是給我們模擬找規律的,其實模擬一下就能發現規律了,規律就是:

  • 求出輸入的兩個數的最小公倍數
  • 然後用最小公倍數分別除以兩個輸入的數
  • 如果結果是單數,則輸出的是輸入的這個數本身
  • 如果結果是偶數,則輸出的是1
  • 注意輸出順序
    這樣就能順利地寫出結果。

###閱讀程序寫結果總結:拿到題,不要慌,瀏覽程序最重要;先模擬,找規律,輕輕鬆鬆拿滿分。

#五、完善程序
1、答案就不寫了,自己看一下。
解析:其實就是我們列豎式做除法的思路,取前幾位除以這個數,得到餘數保留,輸出結果,然後再往後讀取。
其實並不是很難。

2、答案略。
解析:沒啥難的,注意上下對稱結構的提示,幾乎送分。

###完善程序總結:理清代碼思路,注意上下對稱的結構

#結束語
總的來說還可以,卷子難度不是非常大。
考91,不算很好,但也沒什麼遺憾了。
這裏祝願各位NOIP複賽考生(包括我)能在複賽中取得令自己滿意的成績!!
【鼓掌】【鼓掌】【鼓掌】【鼓掌】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章