1. 程式人生 > >noip2017提高組初賽(答案+選擇題題目+個人分析)

noip2017提高組初賽(答案+選擇題題目+個人分析)

被學弟學妹們逼著填坑的我瑟瑟發抖...

一、單項選擇題(共15題,每題1.5分,共計22.5分;每題有且僅有一個正確選項)

1. ( )年開始,NOIP 競賽將不再支援Pascal 語言。

A. 2020 B. 2021 C. 2022 D. 2023

C

這讓學Pascal的我感到了一絲不友好….

2.位二進位制補碼中,10101011 表示的數是十進位制下的( )

A. 43 B. -85 C. -43 D.-84

B

首位01分別表示正、負,正數的反碼是它本身,負數的反碼是它原碼除符號位外按位取反;正數的補碼是它本身,負數的補碼是它的反碼+1,所以題目中補碼的原碼為11010101

,符號位為1表示這是個負數

3.解析度為1600x90016 位色的點陣圖,儲存影象資訊所需的空間為( )

A. 2812.5KBB. 4218.75KB

C. 4320KB D. 2880KB

A

解析度為1600*900表示有1600*900=1440000個畫素,每個畫素是16位,所以有1440000*16=23040000bit=2880000B=2812.5KB

4. 2017101日是星期日,1949101日是( )

A. 星期三B. 星期日

C. 星期六D. 星期二

C

歷史老師說過是星期六

其實我們只關心1949-10-12017-10-1在過了多少個一週後又零幾天

一年有52=52*7=364天,所以每過一個平年我們過了

52周零1天,每過一個閏年我們過了52周零2

而中間有(2017-1949/4=17 個閏年

所以我們除了n個整週外零了(2017-1949+17=85 =12…….1

多過了1天使週日,所以1949-10-1是週六

5. 是有個結點、條邊(n ≤m)的連通圖,必須刪去( )條邊,才能使得變成一棵樹。

A.m–n+1 B. m-n

C. m+n+1 D.n–m+1

A

這其實就是在走樹的定義了

6. 若某演算法的計算時間表示為遞推關係式:

T(N)=2T(N/2)+NlogN

T(1)=1

則該演算法的時間複雜度為( )

A.O(N) B.O(NlogN)

C.O(N log2N) D.O(N2)

C

不會的話就是蒙也是在BC中間蒙的對吧…50%正確率,是時候看臉了

具體推的話詳見演算法導論

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. 38D. 41

C

4個不同點構成簡單無向連通圖,最多有4*4-1/2=6 條邊(強聯通圖),最少有4-1=3 條邊(樹),但注意,不是所有的任選3條邊都滿足條件,有一種情況是三個點形成一個三角形而孤立一個點,這種情況共有4

所以 ans=C63-4+C64+C65+C66=38

9. 7個名額分給4個不同的班級,允許有的班級沒有名額,有( )種不同的分配方案。

A. 60 B. 84 C. 96 D.120

D

一個組合數的經典(S)裸(B)題,隔板法C103

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

D. 19

B

 

這題實際上是個數列遞推求通項+求期限

11. AB是兩個長為n的有序陣列,現在需要將AB合併成一個排好序的陣列,請問任何以元素比較作為基本運算的歸併演算法最壞情況下至少要做( )次比較。

A. n2 B. nlogn C. 2n D.2n-1

D

送命的常識題..

12. n(n>=3)枚硬幣中有一枚質量不合格的硬幣(質量過輕或質量過重),如果只有一架天平可以用來稱重且稱重的硬幣數沒有限制,下面是找出這枚不合格的硬幣的演算法。請把a-c三行程式碼補全到演算法中。

2. A中硬幣分成X,Y,Z三個集合,使得|X|=|Y|=k, |Z|=n-2k

3. if W(X)≠W(Y) //W(X), W(Y)分別為XY的重量

4. then_______

5. else_______

6. __________

7. if n>2 then goto 1

8. if n=2 then 任取A1枚硬幣與拿走硬幣比較,若不等,則它不合格;若相等,則A中剩下的硬幣不合格

9. if n=1 then A中硬幣不合格

正確的填空順序是( )

A.   b,c,a B. c,b,a C. c,a,b D.a,b,c

D

看懂註釋就很簡單了..if Wx<>W(y) 說明不是不合格的不是在X就是在Y 所以是a else不合格的在Z所以bA已經更新,所以下一步更新n所以是c..

這個題幹其實是一個很經典的面試題來著

13. 在正實數構成的數字三角形排列形式如圖所示,第一行的數為a11;第二行的數從左到右依次為a21,a22;…n行的數為an1,an2,…ann。從a11開始,每一行的數aij只有兩條邊可以分別通向下一行的兩個數a(i+1)ja(i+1)(j+1)。用動態規劃演算法找出一條從a11向下通到an1,an2,…,ann中某個數的路徑,使得該路徑上的數之和達到最大。

C[i,j]是從a11aij的路徑上的數的最大和,並且C[i,0]=C[0,j]=0,則C[i,j]=( )

A. max{C[i-1,j-1],C[i-1,j]}+aij

B. C[i-1,j-1]+c[i-1,j]

C. max{C[i-1,j-1],C[i-1,j]}+1

D. max{C[i,j-1],C[i-1,j]}+aij

A

這是一道送命題表說你沒寫過

14. 小明要去南美洲旅遊,一共乘坐三趟航班才能到達目的地,其中第1個航班準點的概率是0.9,第2個航班準點的概率為0.8,第3個航班準點的概率為0.9。如果存在第i個(i=1,2)航班晚點,第i+1個航班準點,則小明將趕不上第i+1個航班,旅行失敗;除了這種情況,其他情況下旅行都能成功。請問小明此次旅行成功的概率是( )

A. 0.5 B. 0.648 C. 0.72 D.0.74

D

1-0.1*0.8-0.2*0.9= 0.74

15. 歡樂噴球:兒童遊樂場有個遊戲叫歡樂噴球,正方形場地中心能不斷噴出彩色乒乓球,以場地中心為圓心還有一個圓軌道,軌道上有一列小火車在勻速運動,火車有六節車廂。假設乒乓球等概率落到正方形場地的每個地點,包括火車車廂。小朋友玩這個遊戲時,只能坐在同一個火車車廂裡,可以在自己的車廂裡撿落在該車廂內的所有乒乓球,每個人每次遊戲有三分鐘時間,則一個小朋友獨自玩一次遊戲期望可以得到( )個乒乓球。假設乒乓球噴出的速度為2/秒,每節車廂的面積是整個場地面積的1/20

A.   60 B. 108 C. 18 D. 20

C

一共有2*60*3=360個球

360/20=18(個)

二、不定項選擇題(共5題,每題1.5分,共計7.5分;每題有一個或多個正確選項,多選或少選均不得分)

1. 以下排序演算法在最壞情況下時間複雜度最優的有( )

A. 氣泡排序B. 快速排序

C. 歸併排序D. 堆排序

CD

冒泡最壞On^2,快排最壞On^2)退化成冒泡,歸排和堆排最好最壞都是Onlog2n

2. 對於入棧順序為a, b, c, d, e, f, g 的序列,下列()不可能是合法的出棧序列。

A. a,b,c,d,e,f,g B.a,d,c,b,e,g,f

C. a,d,b,c,g,f,e D.g,f,e,d,c,b,a

C

棧,先進先出..所以d進去出來後,下一個出來的是c不是b

3. 下列演算法中,( )是穩定的排序演算法。

A. 快速排序B.堆排序

C.希爾排序D. 插入排序

D

怎麼考這麼多次排序的東西

詳見

4. 以下是面向物件的高階語言的是( )

A. 組合語言B. C++ C. Fortan D. Java

BD

怕不是個常識題想深入瞭解的請自行百度

5. 以下和計算機領域密切相關的獎項是( )

A. 奧斯卡獎B. 圖靈獎C. 諾貝爾獎D. 王選獎

BD

這麼明顯的給分題不要白不要要了不白要放水太明顯了..這水已經放滿太平洋了

三、

13

第一次:第三排右數第二個

第二次:第四排中間那個

第三次:最上面那個

24    9

裸的最小割轉對偶圖..

其實上面那個不會也沒有關係,想讓AB不連通的最小代價只要把直接連B的三條邊斷掉就行(1+1+2=4),不同方案的話就拿著4去試就行

四、

115

跟著跑就行..

g(8,4,0)=g(8,3,0)+g(7,3,1)+g(6,3,2)=10+4+1=15

g(8,3,0)=g(8,2,0)+g(7,2,1)+g(6,2,2)=5+3+2=10

g(8,2,0)=g(8,1,0)+g(7,1,1)+g(6,1,2)+g(5,1,3)+g(4,1,4)=5

g(7,2,1)=g(6,1,1)+g(5,1,2)+g(4,1,3)=3

g(6,2,2)=g(4,1,2)+g(3,1,3)=2

g(7,3,1)=g(6,2,1)+g(5,2,2)=3+1=4

g(6,2,1)=g(5,1,1)+g(4,1,2)+g(3,1,3)=3

g(5,2,2)=g(3,1,2)=1

g(6,3,2)=g(4,2,2)=g(2,1,2)=1

217 24 1 8 15

這就是一個幻方看出來的直接寫,看不出來的按照它給的規則寫:第一行中間是1,下一個數寫在上一個數的右上面那個格(第一行的上一行是最後一行,最後一列的右面是第一列),如果右上面那個格已經填過就填它下面那個(能填右上填右上,填不了右上就填右面那個)

38

這就是在數逆序對

41 3

     2017 1

     1 321

矩陣內45度反彈到哪個角就是那個

.

1

Pascal                                                             C++/C

(1)p[0]                                                                p[0]

(2)rest<q                                                           rest<q

(3)rest div q                                                       rest/q

(4)(rest mod q)*10+p[i]                                   (rest % q) * 10+ p[i]

(5)rest mod q                                                    rest% q

大整數除法….這和我寫的版本好像不是很一樣???

第一問據說好多人都跪在了填0,注意人家指標是從1開始的

第二問實在沒思路的話可以找兩個數除一下試試條件也可以出來,實際上就是在模擬人們做豎式的時候除不了就往後錯一位的過程,邊界當然是能除就行..而且下面直接就接的if rest<q)直接輸出0…所以還是沒有難度的

第五題據說還有人跪在直接填rest…

直接上板子題,還是很水的….

2

              Pascal                                                                C++/C

1  inc(degree[b])                                                    degree[b]++

2  degree[i]=0                                                       degree[i]==0

3   dec(degree[i])                                                   degree[i]—

4   inc(head)                                                           head++

5   ans<len[a]                                                         ans<len[a]

相當送分的一道大水題,每一步都非常明確,第一問是更新入度,第二問是將入度為0的入隊,第三問刪邊更新入度,第四問頭指標後移,第五問更新答案,注意求的是最長路

總體來說今年初賽難度一般總體偏水???

後面的題似乎一直在放水,看出來是在幹什麼的可以答的快點,看不出來的一步一步跟著做也能搞出來(矩陣反彈那個後面的資料可能費點勁),考察的東西比較偏基礎,注意細節

前面的選擇有幾道題確實有些難為人,但是幾道也不是太要緊,反正選擇,不會算就蒙唄=。=,買了那麼多謝謝惠顧不就是給這個時候攢人品麼…

——Eirlys

轉載時請註明出處=w=