NOIP 2015提高組 題解 分析

2021-07-09 22:57:37 字數 1030 閱讀 5432

這一次的提高組出的題挺喪心病狂的,似乎比普及組還要容易看出演算法,隨便就400+。我在洛谷上測得好像是500多。真不知ccf在想什麼?算了不說那麼多了,直接上分析:

(以下的題目中d1a表示第一天第一題,d2b表示第二天第三題,以此類推)

題目演算法簡單分析:

【d1a】 簡單模擬

【d1b】 直接掃一遍找最小環,或者看網上好像有類似拓撲排序剩下迴路的方法,總之方法非常多

【d1c】 將牌二進位制狀壓,或著記憶化搜尋

【d2a】 顯然是二分答案

【d2b】 用各種方法動規,目測想出乙個類雜湊優化的o(n^2)演算法

【d2c】 一開始沒看到m個運輸計畫的要求,以為是次小生成樹,類似《秦始皇修路》的方法,後來才發現尚倒比較難……好像樹鏈剖分之類的方法可以來坑分,總之,要小心常數(ccf竟然卡常數)

題目正式題解:

【d1a】 模擬不說了,noi題庫的題目,改了一下資料規模。

【d1b】直接dfs,標記找到過的每乙個節點,顯然就是o(n)的演算法。或者說用拓撲排序不斷找環,不過好像本質上還是廣搜。

【d1c】 顯然這一道題目應該就是搜尋了。只需要將出沒出牌變成二進位制,出了就是1,沒出就是0。接著對於全部的0開始記憶化搜尋,接著窮舉所有的出牌方法,然後記憶化,顯然不會爆空間。

【d2a】 最小值最大,顯然就是二分,在noi題庫上都有原題。

【d2b】 其實和usaco 2014 feb bronze相似,只不過多了乙個k個子串的要求。但是,要注意倒序求解!也就是說,乙個正序列舉a中的每個字元,再反序列舉b中的字元,如果ai=bj,則dpj+=dpj-1,但是j=0時++dpj即可。但是這個時候,我們可以發現乙個優化:雜湊表。注意到字元總數不多,於是可以用開放定址法(拉鍊法),算是乙個常數優化吧。

接著,估計直接dp就行了,加一維子串的個數,再注意模一下就好了。

【d2c】 似乎可以樹鏈剖分,總之是有什麼優化都丟上來……沒想到最優化解法,但是寫乙個暴力都不少分了。正解應該是利用lca的時間戳+rmq和線段樹的線段覆蓋操作即可,不過聽說還有直接用線段樹的做法。主要注意常數的優化。

總結:挺簡單的。

Noip2015提高組總結

總體而言noip還行吧,每天前兩題都穩穩地,但是最後一題做得不好。day1,看完題目後,第一題簽到,第二題很直觀想出來了,又畫了個圖驗證了一下,tarjan雖然可能爆棧,但人工棧就沒問題了。第三題認為是dp一類的東西。畢竟是第一次提高組,還是挺緊張的,一二題打得特別仔細特別慢,對拍,肉眼查錯,搞了接...

NOIP2015提高組解析

題目見此 day1 神奇的幻方 裸裸的模擬 其實也可以發現規律 i 1在i的右上方,如果已經有數了,就填在i的下方 include includeusing namespace std int a 50 50 int nx,ny,n int main else elseelse a tx ty i ...

NOIP2015 提高組初賽答案及題解

單項選擇題 1.a。計算機內部的用來傳送 存貯 加工處理的資料或指令都是以二進位制形式進行的。2.a。寫這題我用的是排除法,b選項顯然不對,內存在斷電後資料會丟失,c選項也是,螢幕的解析度是可以手動調整的,d選項,當年我們都用寬頻連線internet的。3.a。二進位制小數轉化為十六進製制小數時,每...