NOIP2013初賽提高組Pascal試題及答案_第1頁
NOIP2013初賽提高組Pascal試題及答案_第2頁
NOIP2013初賽提高組Pascal試題及答案_第3頁
NOIP2013初賽提高組Pascal試題及答案_第4頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、面的故事與()算法有著異曲同工之妙。從前有座山,山里有座廟,廟里有個老和尚在給小和尚講故事:?從前有座山,山 里有座廟,廟里有個老和尚在給小和尚講故事:從前有座山,山里有座廟,廟里有個 老和尚給小和尚講故事.?枚舉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é)點(diǎn),則其中至多有()個節(jié)點(diǎn)有2 個子節(jié)點(diǎn)。A.10

3、06B.1007C.1023D.10246. 在一個無向圖中,如果任意兩點(diǎn)之間都存在路徑相連,則稱其為連通圖。右圖是一個有 5 個頂點(diǎn)、 8 條邊的連通圖。若要使它不再是連通圖,至少要刪去其中的()條邊。A.2B.3C.4D.57. 斐波那契數(shù)列的定義如下: F 1 = 1, F 2 = 1, Fn = F n 1 + Fn 2 (n 3)。如果用下面的函數(shù)計(jì)算斐波那契數(shù)列的第n 項(xiàng),則其時(shí)間復(fù)雜度為()。funtion F(n : longint) : longint;beginif n <= 2 thenF:=1elseF := F(n - 1) + F(n - 2);end;A.

4、O(1)B. O(n)2D. O(F n)C. O(n )8.二叉查找樹具有如下性質(zhì):每個節(jié)點(diǎn)的值都大于其左子樹上所有節(jié)點(diǎn)的值、小于其右子樹上所有節(jié)點(diǎn)的值。那么,二叉查找樹的()是一個有序序列。A.先序遍歷B.中序遍歷C.后序遍歷D.寬度優(yōu)先遍歷9.將( 2, 6, 10, 17)分別存儲到某個地址區(qū)間為010 的哈希表中,如果哈希函數(shù)(),將不會產(chǎn)生沖突,其中a mod b 表示 a 除以 b 的余數(shù)。h(x) =A.x mod 11B.x2 mod 11C.2x mod 11D.? ? mod 11,其中 ? ?表示 下取整10. IPv4 協(xié)議使用 32 位地址,隨著其不斷被分配,地址資

5、源日趨枯竭。因此,它正逐漸被使用()位地址的 IPv6協(xié)議所取代。A. 40B. 48C. 64D. 12811. 二分圖是指能將頂點(diǎn)劃分成兩個部分,每一部分內(nèi)的頂點(diǎn)間沒有邊相連的簡單無向圖。那么, 12 個頂點(diǎn)的二分圖至多有()條邊。A. 18B. 24C. 36D. 6612.( )是一種通用的字符編碼,它為世界上絕大部分語言設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺的文本交換。目前它已經(jīng)收錄了超過十萬個不同字符。A.ASCIIB.UnicodeC.GBK 2312D.BIG513.把 64 位非零浮點(diǎn)數(shù)強(qiáng)制轉(zhuǎn)換成A.大于原數(shù)C.等于原數(shù)32 位浮點(diǎn)數(shù)后,不可能()。B.小于原數(shù)

6、D.與原數(shù)符號相反14.對一個 n 個頂點(diǎn)、 m 條邊的帶權(quán)有向簡單圖用Dijkstra 算法計(jì)算單源最短路時(shí),如果不使用堆或其它優(yōu)先隊(duì)列進(jìn)行優(yōu)化,則其時(shí)間復(fù)雜度為()。A. O(mn + n3)C. O(m + n) log n)B. O(n2)D. O( m + n2) log n)15. T(n)表示某個算法輸入規(guī)模為 n 時(shí)的運(yùn)算次數(shù)。如果 T(1) 為常數(shù),且有遞歸式 T(n) =2*T(n / 2) + 2n,那么 T(n) = ()。A.( n)B.(n log n)C.(n2)D.(n2 log n)二、不定項(xiàng)選擇題(共 5 題,每題 1.5 分,共計(jì) 7.5 分;每題有一個或

7、多個正確選項(xiàng),多選或少選均不得分)1.下列程序中,正確計(jì)算1, 2, 100 這 100 個自然數(shù)之和sum(初始值為0)的是()。A.for i := 1 to 100 doB.i := 1;sum := sum + i;while i > 100 dobeginsum := sum + i;inc(i);end;C.i := 1;D.i := 1;repeatrepeatsum := sum + i;sum := sum + i;inc(i);inc(i);until i > 100;until i <= 100;2.()的平均時(shí)間復(fù)雜度為O(n log n),其中 n

8、是待排序的元素個數(shù)。A.快速排序B.插入排序C.冒泡排序D.歸并排序3. 以 A0 作為起點(diǎn),對下面的無向圖進(jìn)行深度優(yōu)先遍歷時(shí)(遍歷的順序與頂點(diǎn)字母的下標(biāo)無關(guān)),最后一個遍歷到的頂點(diǎn)可能是()。A.A1B.A2C.A3D.A44. ( )屬于 NP 類問題。 A. 存在一個 P 類問題B. 任何一個 P 類問題C. 任何一個不屬于 P 類的問題D. 任何一個在(輸入規(guī)模的)指數(shù)時(shí)間內(nèi)能夠解決的問題5.CCF NOIP 復(fù)賽考試結(jié)束后,因()提出的申訴將不會被受理。A. 源程序文件名大小寫錯誤B. 源程序保存在指定文件夾以外的位置C. 輸出文件的文件名錯誤D. 只提交了可執(zhí)行文件,未提交源程序三

9、、問題求解(共 2 題,每題 5 分,共計(jì) 10 分;每題全部答對得 5 分,沒有部分分)1. 某系統(tǒng)自稱使用了一種防竊聽的方式驗(yàn)證用戶密碼。密碼是 n 個數(shù) s1, s2, , sn,均為 0 或 1。該系統(tǒng)每次隨機(jī)生成 n 個數(shù) a1, a2, ,an,均為 0 或 1,請用戶回答 (s1a1 + s2a2 + snan)除以 2 的余數(shù)。如果多次的回答總是正確,即認(rèn)為掌握密碼。該系統(tǒng)認(rèn)為,即使問答的過程被泄露,也無助于破解密碼因?yàn)橛脩舨]有直接發(fā)送密碼。然而,事與愿違。例如,當(dāng)n = 4時(shí),有人竊聽了以下5 次問答:問答編號系統(tǒng)生成的n 個數(shù)掌握密碼的用戶的回答a1a2a3a411100

10、1200110301100411100510000就破解出了密碼s1 =,s2 =,s3 =,s4 =。2. 現(xiàn)有一只青蛙, 初始時(shí)在 n 號荷葉上。 當(dāng)它某一時(shí)刻在 k 號荷葉上時(shí), 下一時(shí)刻將等概率地隨機(jī)跳到1, 2, k 號荷葉之一上, 直至跳到1 號荷葉為止。 當(dāng) n = 2 時(shí),平均一共跳 2 次;當(dāng) n = 3 時(shí),平均一共跳2.5 次。則當(dāng)n = 5 時(shí),平均一共跳次。12345四、閱讀程序?qū)懡Y(jié)果(共4 題,每題 8 分,共計(jì) 32 分)1. varn, i : integer; str :string; isPlalindrome :boolean;beginreadln(st

11、r);n := Length(str);isPlalindrome := true;for i := 1 to (n div 2) dobeginif (stri <> strn-i+1) thenisPlalindrome := false;end;if (isPlalindrome) thenwriteln('Yes')elsewriteln('No');end.輸入: abceecba輸出:2. vara, b, u, v, i, num : integer;beginreadln(a, b, u, v);num := 0;for i := a

12、 to b dobeginif (i mod u = 0) or (i mod v = 0) theninc(num);end;writeln(num);end.輸入: 1 1000 10 15輸出:3. const SIZE = 100; varn, ans, i, j : integer;height, num : array1.SIZE of integer;begin read(n);for i := 1 to n do beginread(heighti); numi := 1;for j := 1 to i-1 do beginif (heightj < heighti) a

13、nd (numj >= numi) thennumi := numj+1;end;end;ans := 0;for i := 1 to n dobeginif (numi > ans) thenans := numi;end;writeln(ans);end.輸入:832511127410輸出:4. const SIZE = 100; varn, m, p, count, ans, x, y, i, j : integer;a : array1.SIZE, 1.SIZE of integer;procedure colour(x, y : integer); begin inc(c

14、ount);axy := 1;if (x > 1) and (ax-1y = 0) then colour(x-1, y);if (y > 1) and (axy-1 = 0) then colour(x, y-1);if (x < n) and (ax+1y = 0) then colour(x+1, y);if (y < m) and (axy+1 = 0) then colour(x, y+1);end;beginfillchar(a, sizeof(a), 0); readln(n, m, p);for i := 1 to p do beginread(x, y

15、); axy := 1;end; ans := 0;for i := 1 to n dofor j := 1 to m doif aij = 0 then begincount := 0;colour(i, j);if (ans < count) thenans := count;end;writeln(ans);end.輸入:6 5 91 42 32 43 24 14 34 55 46 4輸出:五、完善程序(第1 題 15 分,第 2 題 13 分,共計(jì) 28 分)1. (序列重排)全局?jǐn)?shù)組變量 a 定義如下: const int SIZE = 100;int aSIZE, n;它記錄

16、著一個長度為n 的序列 a1, a2, an ?,F(xiàn)在需要一個函數(shù),以整數(shù)p (1 p n)為參數(shù),實(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 時(shí)重排結(jié)果為3, 4, 5, 1, 2。有一種樸素的算法可以實(shí)現(xiàn)這一需求,其時(shí)間復(fù)雜度為O(n)、空間復(fù)雜度為O(n):procedure swap1(p : longint);vari, j : longint;b : array1.SIZE of longint;beginfor i := 1 to p dob(

17、1) := ai;/ ( 2 分)for i := p + 1 to n dobi - p := ai;for i := 1 to n doai := bi;end;我們也可以用時(shí)間換空間,使用時(shí)間復(fù)雜度為O(n2)、空間復(fù)雜度為O(1) 的算法:procedure swap2(p : longint);vari, j, temp : longint;beginfor i := p + 1 to n dobegintemp := ai;for j := i downto(4)do/( 2分)aj := aj - 1;(5):= temp;/( 2分)end;end;事實(shí)上,還有一種更好的算法,

18、時(shí)間復(fù)雜度為O(n)、空間復(fù)雜度為O(1) :procedure swap3(p : longint);varstart1, end1, start2, end2, i, j, temp : longint;beginstart1 := 1;end1 := p;start2 := p + 1;end2 := n;while true dobegini := start1;j := start2;while (i <= end1) and (j <= end2) dobegintemp := ai;ai := aj;aj := temp;inc(i);inc(j);end;if i

19、<= end1 thenstart1 := ielse if(4)then/(3 分)beginstart1 :=(5);/( 3分)end1 :=(6);/( 3分)start2 := j;endelsebreak;end;end;2. (兩元序列) 試求一個整數(shù)序列中, 最長的僅包含兩個不同整數(shù)的連續(xù)子序列。如有多 個子序列并列最長,輸出任意一個即可。例如,序列“1 1 2 3 2 3 2 3 3 11 13 1”中, 有兩段滿足條件的最長子序列,長度均為7,分別用下劃線和上劃線標(biāo)出。program two;const SIZE = 100;varn, i, j, cur1, cur

20、2, count1, count2,ans_length, ans_start, ans_end : longint;/cur1, cur2分別表示當(dāng)前子序列中的兩個不同整數(shù)/count1, count2 分別表示 cur1, cur2 在當(dāng)前子序列中出現(xiàn)的次數(shù) a : array1.SIZE of longint;beginreadln(n);for i := 1 to n doread(ai);i := 1;j := 1;/i, j 分別表示當(dāng)前子序列的首尾,并保證其中至多有兩個不同整數(shù) while (j <= n) and (aj = ai) doinc(j);cur1 := ai

21、;cur2 := aj;count1 :=(1);/(3 分)count2 := 1;ans_length := j - i + 1;while j < n dobegininc(j);if aj = cur1 theninc(count1)else if aj = cur2 theninc(count2)else beginif aj - 1 =(2)then/( 3分)beginwhile count2 > 0 dobeginif ai = cur1 thendec(count1)elsedec(count2);inc(i);end;cur2 := aj;count2 := 1;endelse beginwhile count1 > 0 dobeginif ai = cur1 then(3)/( 2分)else(4);/( 2分)inc(i)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論