2020洛谷初賽模擬 訂正


2020洛谷初賽模擬

78分,有點不是很理想。和去年的成績相差無幾,但是貌似和去年難度相當啊。今年的初賽只選拔200人而不像去年那樣水,我有點點危險……

以下是訂正

1、運行次數判斷

10.在一個初始長度為n的鏈表中連續進行k次操作,每次操作是讀入兩個數字aj和bj,在鏈表中找到元素為aj的結點(假設一定可以找到),然后將bj這個元素插入到這個結點前面。在最理想的情況下,鏈表訪問的結點數量最少可能是多少(不算將要插入的結點)?
A.n次
B.k次
C.nk次
D.n+k 次

注意這里是“最理想的情況”,而不是“平均情況”。

如果問的是平均要多少次,那當然是O(nk)

但是這里是“最理想”,所以就可以任意構造這個初始鏈表。假設aj就是鏈表的第一個元素即可。

2、組合數

A班有5名風紀委員,B班有4名風紀委員,C班有3名風紀委員。現在需要這些同學中選取6名風紀委員巡邏,如果只關注各班派出的風紀委員人數,有幾種不同的方案?
A.9
B.12
C.15
D.18

考場上遇到這種題,看到數據還算小的話還是手推一下吧!

這次我就直接pass了………………

其實很easy的

 1     501
 2     510
 3     411
 4     420
 5     402
 6     312
 7     321
 8     330
 9     303
10     240
11     231
12     222
13     213
14     141
15     132
16     123
17     042
18     033

over

3、圖論基礎

14.一個7個頂點的完全圖需要至少刪掉多少條邊才能變為森林?
A.16
B.21
C.15
D.6

先下定義:

圖:由點和邊構成,可以連通也可以不連通

完全圖:點兩兩之間都有直接的邊的圖,m=n*(n-1)/2

連通圖:每兩個點之間都是連通的(直接或者間接有路徑可以到達)

樹:最基礎的連通圖,m=n-1

森林:至少一棵樹的圖(一棵樹也是森林!)

所以,就是從一個n=7->m=6*7/2=21的圖變成了一個n=7->m=6的樹,over

4、雖然這題沒錯但是我還是想記錄一下

5.在一個長度為n的數組中找到第k大的數字,平均的算法時間復雜度最低的是:
A.O(n)
B.O(nk)
C.O(nlogn)
D.O(n^2)

其實每個選項都對應了一種做法,我們倒着講:

假設原數組是a[1...n]

D:使用o(n^2)的排序,比如冒泡排序,然后輸出a[k]即可

C:使用o(nlogn)的排序,比如sort(),然后同上

B:兩層循環,依次找出1st,2nd,2rd,4th...(k-1)th,kth大的數即可

A:利用快排的思想,每次在目標的區間內選一個數i,然后把比a[i]小的都放在其左,比a[i]大的都放在其右。判斷a[i]在這一次后的位置與k的大小關系,然后選擇k所在的那個區間重復進行。時間復雜度:n+n/2+n/4+n/8+.......=2n=O(n)

可以直接用algorithm里面的函數nth_element(a.begin(),a.begin+k,a.end(),<cmp>)才不告訴你呢!

OVER


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM