時隔一年,相比去年一無所知的自己,學到了不少東西,雖然還是很弱,但也頗有收穫【學會了打板qaq】
現在是2017.11.9 21:10,noip2017的前兩天晚上,明天就要出發,做最後的總結
noip考的演算法不如省選、noi廣,但也不少,而更注重思維量【本蒟蒻思維就很不好】
總的來說有以下:
1、模擬
2、搜尋
3、二分、貪心、倍增等演算法思想
4、動態規劃
5、圖論
6、數論、數學
7、資料結構
模擬就沒什麼好說的吧,按照題目所說的去做,但要非常注意的就是考慮周全,尤其是要分類討論的模擬,這個時候最好先離開鍵盤,在草稿紙上先理一遍,確定嚴謹性
搜尋作為在oi中乙個極其重要的演算法,應用最廣泛。
搜尋基於列舉的思想,逐個列舉檢查答案
搜尋可以是一道題的正解,也可以作為很多題的對拍【騙分。。】
總的來說有以下:
二分通常用來解決最值問題,尤其是最大值最小、最小值最大這類問題
但在確定二分之前,我們必須檢驗二分物件是否滿足二分性質:
1、我們一般對答案二分
2、對於乙個答案,我們能有效率地檢驗是否可行
3、【最重要】答案滿足單調性,即k滿足條件,比k大或比k小都一定滿足
二分通常可以用以替代列舉【o(n) -> o(logn)】
二分**主要有兩種:
求最大值:
int l = 1,r = 1000,mid;
while (l < r)
求最小值:
int l = 1,r = 1000,mid;
while (l < r)
還有一種是求最接近某個值的二分,這時候大於就給r,小於就給l,等於就是答案,不等於退出時l,r都檢查一下
貪心,顧名思義,就是只考慮當前最優
貪心能解決的問題一定要滿足最優子結構,就是乙個問題分成多個子問題,主問題的最優解 等於 子問題的最優解之和
01揹包、完全揹包、分組揹包、混合揹包、多重揹包【二進位制優化】、有依賴的揹包、滿載揹包、揹包方案
列舉斷點o(n^3)
用二進位制表示集合作為狀態進行轉移
適用n<=20的資料
lis有nlogn的二分優化演算法
φ(n) = n * (1 - 1/p1) * (1 - 1/p2) * (1 - 1/p3) ...... * (1 - 1/pk)
小於n與n互質的個數
c(n,m) = n! / (m! * (n - m)!)
計算方式:o(n)單算,o(n^2)遞推,c(n,k)的和 = 2 ^ n【k∈[0,n]】,二項式定理、楊輝三角
加法原理、乘法原理、容斥原理
斐波那契數列f[n] = f[n-1] + f[n - 2]
1、1、2、3、5、8、13、21、37、58、95......
卡特蘭數 f[n] = f[n - 1] * (4 * n - 2) / (n + 1)
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786......
一般: ax≡1 (mod p)
a,p互質: x = a^(p-2)
遞推:v[i] = -(p/i) * v[p % i]
佇列、棧、鍊錶
用來解決集合的合併與查詢
特殊:維護到父節點的路徑長
一般線段樹維護區間資訊、主席樹維護歷史版本
splay什麼的
修改完才查詢的最快方法
字串匹配
next陣列意義:前乙個位置的字尾字首最長相同長度
也叫字典樹,高效查詢【什麼ac自動機應該不考吧。。。】
複賽考的知識點不算廣,但思維量考察是很大的,尤其是二分、動歸這樣精巧的思想,需要我們深入的思考以及細心地分析,明天的考試要靜下心,認真考慮細節,就好像手裡沒有鍵盤,先想清楚細節再動手,切不可浮躁。
這次的比賽嚮往了很久,期待了很久,緊張了很久,遐想了很多,也很拼,從乙個什麼都不會的蒟蒻變成了至少有了些知識儲備拿得出手的蒟蒻【= =、】,只願風平浪靜,考試順利。
鯤鵬展翅翼向天,直上雲霄九萬里
乘風破浪無所懼,不圓夙願誓不歸
noip2017 rp++
NOIP2017 考前彙總
時隔一年,相比去年一無所知的自己,學到了不少東西,雖然還是很弱,但也頗有收穫 學會了打板qaq 現在是2017.11.9 21 10,noip2017的前兩天晚上,明天就要出發,做最後的總結 noip考的演算法不如省選 noi廣,但也不少,而更注重思維量 本蒟蒻思維就很不好 總的來說有以下 1 模擬...
NOIP2017模擬 鴨舌
題目 小美喜歡吃鴨舌。有乙個 n 個點的樹,每個節點 i 第 i 個點上有 ai 個鴨舌。小美一開始處於 x 號點。每次小美可以選擇乙個與現在的點有邊的點而且那個點還有鴨舌,那麼小美會走到那個點並吃乙個鴨舌。要保證小美最後還是走到 x 號點。問小美最多能吃幾個鴨舌?輸入格式 輸入第一行乙個整數 n ...
NOIP2017模擬 區間
2017.11.3 t1 2032 樣例資料 輸入3 2 1 2 1 1 2 4 5輸出 2 6分析 這道題為什麼要放在t1 考得我懷疑人生。本來也只會暴力找,對於30 的資料我是這樣的 先離散化,再二維陣列記錄所有顏色的在每個位置的字首和,然後四層迴圈暴力查詢。而正解是 先離散化,再把每種顏色的每...