前言
NOIP2018初賽已經結束了,接下來就要準備複賽了。
不過,在此之前,還是先爲初賽寫一篇解題報告吧。
單項選擇題
- 送分題。(
雖然我還是做錯了)可以考慮將它們全部轉化爲10進制,則(269)16=(617)10=(1151)8,而(1001101011)2=(619)2。故選D。
- 常識題。顯然C,C++,Pascal都是編譯執行的,只有Python是解釋執行的。故選D。
- 一道沒什麼意義的題目,隨便蒙了一個答案。應選B。
- 顯然,深度爲0的有1個節點,深度爲1的有k個節點,深度爲2的有k2個節點,一次類圖,深度爲h的有kh個節點,於是總節點數=k0+k1+k2+...+kh=k−1kh+1−1。故選A。
- 由於T(0)=1,T(n)=T(n−1)+n,所以可得T(n)=2n(n+1)+1,這是近似於O(n2)的。故選D。
- 比較基礎的一道題。應選B。
- 顯然,如果固定左端點在最左邊,則隨機選取一個右端點後線段長度期望爲21,再選擇一個點,則線段長度期望肯定小於21,而答案中只有B一個選項是小於21的。故選B。
- 仔細觀察,可以發現B選項和C選項本質上是一樣的,因此可以排除。A和D選項自己手算驗證一下,便能發現A是錯誤的。故選A。
- 感性理解一下,不管你摸幾次球,每次摸到兩個球的概率是一樣的,所以應該是1:1。故選D。
- 手算代入驗證一下即可(其實就相當於x−=x&−x)。應選B。
不定項選擇題
- 常識題。特別注意即使是關機的手機也不能帶進考場,草稿紙同理。故選AB。
- 自己畫畫圖即可,這裏就不多說了。應選CD。
- 關於此題,ABD選項選項顯然是錯的,而C選項顯然有問題。故選ABD。
- 這題應該也是挺顯然的。應選ABD。
- 這種題目考前剛好複習過。應選BCD。
問題求解
- 根據第③點,由於丙去了,所以丁一定不去;根據第④點,由於丁不去,而丙去了,說明甲一定去了;根據第②點,由於丁不去,說明乙肯定也沒去;根據第①點,由於乙不去,而甲去了,說明週末沒下雨。因此答案爲:去了 沒去 沒去 沒下雨。
- 首先要知道一個性質:若設a≤b,則a=a or b,b=a and b(我也不會證)。對於b含1的位數x進行枚舉(從0∼5),可以發現a有2x種選擇(每一位選與不選),因此答案就是∑i=05C5i2i,計算得243,但由於我們考慮的是a≤b的情況,因此最終答案應爲243∗2−32=454(注意去重)。
閱讀程序寫結果
- 模擬即可。答案應爲4。
- 這題本質上就是讓你求一張圖上有幾個環。答案應爲6。
- 熟悉哈希的人都知道,magic()函數就是一個哈希的過程,因此就是要求出有多少個不同的子串,這應該還是很好數的。答案應爲16。
- 不難發現getNext()函數就是求當前排列的下一個排列。
可以像我一樣大力模擬,也可以像奆佬hl666 一樣用康拓展開求解。答案應爲2 1 3 5 6 4和3 2 5 6 1 4。
完善程序
-
(1)既然它讀入x了,就不可能是a[i]=x(否則可以直接讀入a[i])。故答案應爲a[x]=i。
(2)根據雙向鏈表的的對稱性可以輕鬆求解。故答案應爲i+1。
(3)同上。故答案應爲R[a[i]]。
(4)同上。故答案應爲a[i]。
(5)自己帶幾組數據算一下即可。故答案應爲R[i]。
-
這題是一個先貪心、再DP的過程(其實一開始的貪心是完全多餘的)。
(1)根據此題代碼的大致思路,顯然可以看出第一個空該填什麼。故答案應爲a[i]∗0.95<=b[i]。
(2)這應該也是比較顯然的。故答案應爲total_a>=threshold。
(3)這一空與上一空差不多,也是判斷當前是否已經滿足≥threshold。故答案應爲total_a+j+a[i]。
(4)顯然,此空填的應該是在第二個商店買東西的總價。故答案應爲f[j]+total_b−total_b_prefix。
(5)只要會揹包的應該都知道,既然它判斷了j>=a[i],就肯定是要進行轉移了。故答案應爲f[j−a[i]]。
後記
這次初賽應該能壓線過的。
希望在NOIP2018中能夠取得一個好成績!