2022年CSP-S提高級初賽(第一輪)真題講解

根據(jù)視頻整理出的部分知識點。
歡迎糾錯~
【如果可以的話,蒟蒻請求置頂】
1.Linix: ls(lst)查看當(dāng)前目錄的文件和子目錄
cd(change...) 改變目錄
cp(copy) 復(fù)制
2.time命令: user + sys 不一定= real,用戶用秒表記錄的是real時間
3.棧的基本操作,比較簡單懶得寫
4.快速排序:選擇一個基本數(shù)x,把<x的放在左區(qū)間 >x的放右區(qū)間,繼續(xù)分治 最壞復(fù)雜度n^2

歸并排序:分(拆分子序列) + 治(排序),復(fù)雜度log2n

5.基數(shù)排序:按照數(shù)位一位一位排序(0-9的桶,先按個位放到桶里,然后再取出放回數(shù)組,接下來按照10位排序,以此類推...)


6.%X:16進(jìn)制顯示

7.完全二叉樹:除了最后一層,其他層都滿,最后一層左邊是滿的,右邊可能不滿(注意最后一層是滿的也算是完全二叉樹)
8.強(qiáng)連通圖:有向圖中,每個點之間都有路徑能互相到達(dá)
9.歐拉路徑:一條經(jīng)過每個邊一次的路徑恰好一次的路徑;
歐拉回路:一個回路是歐拉路徑;
具有歐拉回路的圖為歐拉圖 簡稱E圖
判斷條件(見下圖懶得寫了)

具體做法:可以靠枚舉得出規(guī)律,當(dāng)然可以靠枚舉直接推。

特例:n = 2 時答案是不成立的
(所以在用取值法排除答案時最好不要代入2)
10.有歧義,根據(jù)答案時8個人組一個隊伍,但是也可以理解成8個人4個隊。(****CCF)
知識點:乘法原理,比較簡單
11.同樣是乘法原理(2022數(shù)學(xué)題的難度比以前簡直是天差地別)
12.哈希表:利用哈希函數(shù)確定地址遇到?jīng)_突可用線性探查(其實還有別的方法),即一直往后找找到空地址為止.
具體做法:

13.水題,沒有太難的知識點,會算時間復(fù)雜度即可
14.水題,沒有太難的知識點
15.遞歸函數(shù)的運(yùn)算,兩種方法:

16.程序思路:查找t在s的哪個位置(類似于find()),但有優(yōu)化:如圖s = day, i = 0時,如果無法匹配,就看i = 3是什么,如果是“y"那么從i = 1查找,是”a"從i = 2查找...以此類推(具體見下圖)

技巧:程序想不出來干嘛用時可以先看題目
17.大致思路:基數(shù)排序(類CSP-J 2019)(雖然這兩貨差別其實有點大...)
具體思路:k是進(jìn)制,先確定有幾位,然后基數(shù)排序

以十進(jìn)制為例:

穩(wěn)定的算法:歸并排序,冒泡排序,插入排序,基數(shù)排序
桶排序:把數(shù)字分到桶里,再單獨(dú)排序,最后得到有序數(shù)列

計數(shù)排序:統(tǒng)計每個數(shù)出現(xiàn)的次數(shù),然后再排序(可以看成大小是1的桶)

18.考察負(fù)數(shù)除法求余:一般來說有兩種情況,取決于編譯器

對于Dev-c++,除數(shù)往絕對值小的那邊取值:
如-22 / 5 = -4余-2, 22/-5 = -4余2
但在本題中其實哪種情況算出來的結(jié)果是一樣的
注:(x / y) *y + x % y == x只要y!=0一定滿足
19.難死我了根本不會
首先先模擬單序列二分(如圖)

然后雙序列二分:
