NOIP2013提高組C++精彩試題_第1頁
NOIP2013提高組C++精彩試題_第2頁
NOIP2013提高組C++精彩試題_第3頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第十九屆全國青少年信息學(xué)奧林匹克聯(lián)賽初賽提高組C+語言試題競賽時間:2013年10月13日14:3016:30選手注意:試題紙共有12頁,答題紙共有2頁,滿分100分。請在答題紙上作答,寫在試題紙上 的一律無效。不得使用任何電子設(shè)備(如計算器、手機、電子詞典等)或查閱任何書籍資料。一、單項選擇題(共15題,每題1.5分,共計22.5分;每題有且僅有一個正確 選項)1. 一個32位整型變量占用()個字節(jié)。A. 4B. 8C.32D. 1282.二進(jìn)制數(shù)11.01在十進(jìn)制下是()。A. 3.25B. 4.125C.6.25D. 11.1253. 下面的故事與()算法有著異曲同工之妙。從前有座山,山

2、里有座廟,廟里有個老和尚在給小和尚講故事:?從前有座山,山 里有座廟,廟里有個老和尚在給小和尚講故事:從前有座山,山里有座廟,廟里有個老和尚給小和尚講故事.'?A. 枚舉B.遞歸C.貪心D.分治4. 1948年,()將熱力學(xué)中的熵引入信息通信領(lǐng)域,標(biāo)志著信息論研究的開端。A. 馮諾伊曼(John von Neumann)B. 圖靈(Alan Turing )C. 歐拉(Leonhard Euler)D. 克勞德香農(nóng)(Claude Shannon)5. 已知一棵二叉樹有2013個節(jié)點,則其中至多有()個節(jié)點有2個子節(jié)點。A. 1006B. 1007C. 1023D. 10246. 在一個

3、無向圖中,如果任意兩點之間都存在路徑相連,則稱其為連通 圖。右圖是一個有 5個頂點、8條邊的連通圖。若要使它不再是連通 圖,至少要刪去其中的()條邊。A. 2B. 3C. 4D. 57. 斐波那契數(shù)列的定義如下:Fl = 1, F2 = 1, Fn = Fn -1 + Fn -2 (n3)。如果用下面的函數(shù)計 算斐波那契數(shù)列的第n項,則其時間復(fù)雜度為()。int F(i nt n)if (n <= 2)return 1;elsereturn F(n - 1) + F(n - 2);2C. O(n )D. O(Fn)A. O(1)B. 0(n)8. 二叉查找樹具有如下性質(zhì):每個節(jié)點的值都大

4、于其左子樹上所有節(jié)點的值、小于其右子樹上所有節(jié)點的值。那么,二叉查找樹的()是一個有序序列。A.先序遍歷B.中序遍歷C.后序遍歷D.寬度優(yōu)先遍歷9. 將(2, 6, 10, 17)分別存儲到某個地址區(qū)間為010的哈希表中,如果哈希函數(shù)h(x)=(),將不會產(chǎn)生沖突,其中a mod b表示a除以b的余數(shù)。2A. x mod 11B. x mod 11C. 2x mod 11D. ? mod 11,其中肯?表示/下取整10. IPv4協(xié)議使用32位地址,隨著其不斷被分配,地址資源日趨枯竭。因此,它正逐漸被使用()位地址的IPv6協(xié)議所取代。A. 40B. 48C. 64D. 12811. 二分圖是

5、指能將頂點劃分成兩個部分,每一部分的頂點間沒有邊相連的簡單無向圖。么,12個頂點的二分圖至多有()條邊。A. 18B. 24C. 36D. 6612. ()是一種通用的字符編碼,它為世界上絕大部分語言設(shè)定了統(tǒng)一并且唯一的二進(jìn) 制編碼,以滿足跨語言、跨平臺的文本交換。目前它已經(jīng)收錄了超過十萬個不同字符。A. ASCIIB. Un icodeC. GBK 2312D. BIG513. 把64位非零浮點數(shù)強制轉(zhuǎn)換成32位浮點數(shù)后,不可能()。A.大于原數(shù)B.小于原數(shù)C.等于原數(shù)D.與原數(shù)符號相反14. 對一個n個頂點、m條邊的帶權(quán)有向簡單圖用Dijkstra算法計算單源最短路時,如果不使用堆或其它優(yōu)

6、先隊列進(jìn)行優(yōu)化,則其時間復(fù)雜度為()。32A. O(m n + n)B. 0( n)2C. 0(m + n) log n)D. 0( m + n) log n)T(1)為常數(shù),且有遞歸式T(n)=15. T(n)表示某個算法輸入規(guī)模為n時的運算次數(shù)。如果2*T(n / 2) + 2n,那么 T(n)=()。A.G)(n)B.O(n log n)2C. (n )2D.O(n log n)二、不定項選擇題(共5題,每題1.5分,共計7.5分;每題有一個或多個正確 選項,多選或少選均不得分)1.下列程序中,正確計算1,2,100這100個自然數(shù)之和sum(初始值為0)的是()。A.for (i =

7、1; i <= 100; i+)sum += i;B.i = 1;while (i > 100) sum += i; i+;C.i = 1;D.i = 1;do do sum += i;sum += i;i+;i+; while (i <= 100); while (i > 100);2.()的平均時間復(fù)雜度為O(n log n),其中n是待排序的元素個數(shù)。A.快速排序B.插入排序C.冒泡排序D.歸并排序3.以A0作為起點,對下面的無向圖進(jìn)行深度優(yōu)先遍歷時(遍歷的順序與頂點字母的下標(biāo) 無關(guān)),最后一個遍歷到的頂點可能是()。2A. A1B.A2C. A3D. A44.

8、()屬于NP類問題。A. 存在一個P類問題B. 任何一個P類問題C. 任何一個不屬于P類的問題D. 任何一個在(輸入規(guī)模的)指數(shù)時間能夠解決的問題提出的申訴將不會被受理。5. CCF NOIP復(fù)賽考試結(jié)束后,因(A. 源程序文件名大小寫錯誤B. 源程序保存在指定文件夾以外的位置C. 輸出文件的文件名錯誤D. 只提交了可執(zhí)行文件,未提交源程序三、問題求解(共2題,每題5分,共計10分;每題全部答對得5分,沒有部 分分)1. 某系統(tǒng)自稱使用了一種防竊聽的方式驗證用戶密碼。密碼是 n個數(shù)S1, S2,sn,均為0 或1。該系統(tǒng)每次隨機生成 n個數(shù)a1, a2,,an,均為0或1,請用戶回答(s1a1

9、 + s2a2 + + Snan)除以2的余數(shù)。如果多次的回答總是正確,即認(rèn)為掌握密碼。該系統(tǒng)認(rèn)為,即使 問答的過程被泄露,也無助于破解密碼一一因為用戶并沒有直接發(fā)送密碼。然而,事與愿違。例如,當(dāng) n = 4時,有人竊聽了以下 5次問答:冋答編號系統(tǒng)生成的n個數(shù)掌握密碼的用戶的回答a1a2a3a4111001200110301100411100510000就破解出 了密碼 S1 = ,S2 = ,S3 = ,S4 = 2. 現(xiàn)有一只青蛙,初始時在n號荷葉上。當(dāng)它某一時刻在k號荷葉上時,下一時刻將等概率地隨機跳到1,2,k號荷葉之一上,直至跳到1號荷葉為止。當(dāng)n = 2時,平均一共跳2次;當(dāng)n

10、= 3時,平均一共跳 2.5次。則當(dāng)n = 5時,平均一共跳 次。四、閱讀程序?qū)懡Y(jié)果(共4題,每題8分,共計32分)1.#in elude <iostream>#in elude <stri ng>using n amespaee std;int mai n() stri ngstr;cin> >str;int n = str.size();bool isPlali ndrome = true;for (int i = 0; i < n/2; i+) if (stri != strn-i-1) isPlalindrome = false;if (isP

11、lali ndrome)cout<<"Yes"<<e ndl;elsecout<<"No"<<e ndl;輸入:abceecba輸出:2.#in clude <iostream>using n amespace std;int mai n()int a, b, u, v, i, num;cin> >a>>b»u»v;num = 0;for (i = a; i <= b; i+)if (i % u) = 0) | (i % v) = 0)nu m+

12、;cout< <num <<e ndl;return 0;輸入:1 1000 10 15輸出:3. #in elude <iostream>using n amespace std;int mai n()const int SIZE = 100;int heightSIZE, numSIZE, n, ans;cin»n;for (int i = 0; i < n; i+) cin> >heighti;nu mi = 1;for (int j = 0; j < i; j+) if (heights < heighti)

13、&& (numj >= numi)nu mi = nu mj+1;ans = 0;for (int i = 0; i < n; i+) if (nu mi > ans) ans = nu mi;cout<<a ns<<e ndl;輸入:83 2 5 11 12 7 4 10輸出:4. #in clude <iostream>#in clude <cstri ng>using n amespace std;con st int SIZE = 100;int n, m, p, aSIZESIZE, count;voi

14、d colour(i nt x, int y)coun t+;axy = 1;if (x > 1) && (ax - 1y = 0) colour(x - 1, y);if (y > 1) && (axy - 1 = 0) colour(x, y - 1);if (x < n) && (ax + 1y = 0) colour(x + 1, y);if (y < m) && (axy + 1 = 0) colour(x, y + 1);int mai n()int i, j, x, y, ans;memset

15、(a, 0, sizeof(a); cin»n>> m»p;for (i = 1; i <= p; i+) cin> >x»y;axy = 1;ans = 0;for (i = 1; i <= n; i+)for (j = 1; j <= m; j+)if (aij = 0) count = 0; colour(i, j);if (ans < count) ans = count;cout<<a ns<<e ndl; return 0;輸入:6 5 91 42 32 43 24 14 34 5

16、5 46 4輸出:五、完善程序(第1題15分,第2題13分,共計28分)1. (序列重排)全局?jǐn)?shù)組變量a定義如下:con st int SIZE = 100;int aSIZE, n;它記錄著一個長度為 n的序列a1, a2,an?,F(xiàn)在需要一個函數(shù),以整數(shù) p (1合)wn)為參數(shù),實現(xiàn)如下功能:將序列 a的前p個 數(shù)與后n -p個數(shù)對調(diào),且不改變這 p個數(shù)(或n -p個數(shù))之間的相對位置。例如, 長 度為5的序列1,2, 3, 4, 5,當(dāng)p = 2時重排結(jié)果為3, 4, 5, 1,2。有一種樸素的算法可以實現(xiàn)這一需求,其時間復(fù)雜度為 0(n)、空間復(fù)雜度為0(n):void swap1(i

17、 nt p)int i, j, bSIZE;/ (2 分)for (i = 1; i <= p; i+)b =ai;for (i = p + 1; i <= n; i+)bi - p = ai;for (i = 1; i <= n; i+)ai = bi;我們也可以用時間換空間,使用時間復(fù)雜度為0( n2)、空間復(fù)雜度為 0(1)的算法:void swap2(i nt p)int i, j, temp;for (i = p + 1; i <= n; i+) II ( 2 分)/ ( 2 分)temp = ai;aj = aj -for (j = i; j >=|(

18、2); j-)1; =temp;事實上,還有一種更好的算法,時間復(fù)雜度為0(n)、空間復(fù)雜度為 0(1):void swap3(i nt p)int start1, en d1, start2, en d2, i, j, temp;start1 = 1;end1 = p;start2 = p + 1;end2 = n;while (true) i =start1; j =start2;while (i <=en d1) && (j <= en d2) temp=ai;ai=aj;aj=temp;i+;j+;if (i <= en d1)startl = i;I

19、I (3 分)II (3 分)II (3 分)else if ( M(4) startl =H(5)endl =start2 = j;else break;2. (兩元序列)試求一個整數(shù)序列中, 最長的僅包含兩個不同整數(shù)的連續(xù)子序列。如有多個子序列并列最長,輸出任意一個即可。例如,序列“1 1 2 3 2 3 2 3 3 1 1 13 1 ”中,有兩段滿足條件的最長子序列,長度均為7,分別用下劃線和上劃線標(biāo)出。#i nclude <iostream>using n amespace std;int mai n()const int SIZE = 100;int n, i, j, aSIZE, cur1, cur2, coun t1, coun t2, ans_len gth, an s_start, ans_end;IIcur1, cur2分別表示當(dāng)前子序列中的兩個不同整數(shù)IIcount1, count2分別表示curl,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論