省選前的總結

考場策略:算法

  1. 心態要自信,不要焦慮。
  2. 作不出題的時候先放鬆,去上廁所,洗臉。
  3. 不要放棄,廣開思路,儘可能多試一些學過的算法,往每一個方向都深刻思考,由於每一個方向都有多是正解。
  4. 考場上不要寫代碼也不要切題。要合理分配時間,掌控考試過程,切忌貪心寫題。

算法與數據結構:數組

樹:(動態)點分治,DFS序,樹鏈剖分,長鏈剖分,動態樹,dsu on tree,樹形DP,lca,虛樹,樹上差分,樹上高斯消元,kruskal重構樹,動態DP,ETT,prufer序列。網絡

點分治:有兩種統計方式,一種是逐個子樹統計,還有一種是所有搞到一塊兒而後一塊兒統計,想辦法去重。數據結構

動態點分治:每層的重心之間連邊,樹高log。維護點分子樹到該點的信息,可套線段樹。通常要消去每一個點分子樹內部的影響。不可減信息用DFS序來消去,對每一層的點分子樹維護在原樹上的DFS序。經常使用O(1)lca。函數

樹鏈剖分:可優化連邊,可預處理作到一個log。優化

長鏈剖分:O(1)k級祖先,O(n)處理樹上與深度有關的信息,可與貓樹結合作到O(1)回答詢問。spa

動態樹:可維護子樹信息,樹上染色,邊雙連通份量,某種生成樹。可與ETT/sam配合。指針

dsu on tree:樹上啓發式合併。能夠拿來打暴力。排序

樹形DP:可用一維狀態表示在子樹外xxxx。可用長鏈剖分優化。轉移的時候可新開一個數組複製過去,別忘了給原數組賦0。逐子樹合併。可二次掃描與換根法。字符串

lca:O(1),可用來處理一些樹上可減信息。

虛樹:可套總體二分 + 線段樹合併。按照DFS序排序。

樹上差分:進子樹和出子樹的時候分別統計一次。也可用到根路徑和lca來差分,常與主席樹結合。

樹上高斯消元:每一個點的信息能夠只被父親表示。設出係數而後化式子。

kruskal重構樹:樹上倍增。能夠建兩棵,用DFS序轉到二維平面。

動態DP:樹剖維護線段信息。

ETT:有根樹splay維護括號序列。

prufer序列:每一個點的度數爲出現次數 + 1。可用於計數。

數據結構:(可持久化)線段樹(合併/分裂)(貓樹/吉司機線段樹),樹狀數組,左偏樹,splay,非旋treap,STL,並查集,單調棧,樹套樹,ST表,鏈表。

線段樹:勢能分析,每一個數被操做次數不會超過一個上限(通常是log次),不然暴力重構。可持久化就是沿用以前的節點,標記永久化。

線段樹合併:分爲可持久化和不可持久化兩種,常與sam/樹上問題嵌套。

線段樹分裂:相似非旋treap的寫法。把前k大和後k大分開。

貓樹:每一個區間預處理出左邊,右邊到中點的答案。查詢時直接O(1)找到對應節點(O(1)lca或二進制)而後O(1)查詢。

吉司機線段樹:區間對某個數取max。維護最小值,最小值個數和嚴格次小值。

樹狀數組:能夠一個log找第k大,維護前綴最值。值域小的時候甚至能切普通平衡樹。常與CDQ分治/總體二分嵌套。二維樹狀數組就是樹套樹。

左偏樹:可並堆,可以完爆普通手寫堆。記得跟線段樹同樣維護一個rt[],每次修改rt。能夠額外用一個並查集來維護根的編號。

splay:可以維護序列/數值集合。

非旋treap:能夠可持久化。

STL:set,multiset,map,priority_queue,vector,bitset。

並查集:可撤銷,可帶擴展域/帶邊權。

單調棧:用於各類神奇的發掘性質題,lis,DP優化當中。

樹套樹:用來處理二維信息。有時可用總體二分代替。

ST表:可優化連邊,可O(1)求區間最值,可用於O(1)lca。

鏈表:可維護一些O(1)插入刪除(必須按順序)的信息,有時會在莫隊中使用。

圖論:網絡流,tarjan,最短路,差分約束。

網絡流:主要是建圖,要加當前弧優化。

tarjan:求解連通性信息,多做爲一道題目的一部分。

差分約束:最大值求最短路,最小值求最長路。

字符串:hash,後綴自動機,AC自動機,manacher,KMP,迴文自動機,trie。

hash:雙模數,可平衡樹維護hash值。

後綴自動機:通常與線段樹合併結合,有時與lct結合,不少時候用fail樹轉成樹上問題。可用後綴樹構建sa。

AC自動機:每一個點都是一個前綴,跳fail是跳後綴。可與DP,矩陣快速冪結合。

manacher:O(1)求解以每一個位置爲中心的迴文串。

KMP:可改變第二次匹配時的匹配條件來作到一些奇怪的匹配。

迴文自動機:求解全部本質不一樣迴文串,每一個字符結尾的迴文串信息。

trie:可用01trie來處理異或,可持久化01trie來代替可持久化平衡樹。可建trie sam。

多項式:FFT,多項式操做,FWT。

FFT:可處理字符串匹配,卷積求方案,可與點分治結合。可用原根把*變成+作FFT。

多項式操做:多出現於計數題中。經常使用倍增與牛頓迭代。

FWT:位運算卷積。求子集和(高維前綴和)而後再差分回去。可優化子集DP(FST)

計算幾何:叉積,凸包,辛普森積分。

叉積:x1y2 - x2y1是有向面積。

凸包:左右橫着掃兩次。可用於斜率優化,可用set維護。

辛普森積分:分多段積分。精度要求是15eps,公式是(f[l]+4f[mid]+f[r])(r-l)/6。

DP:狀壓DP,區間DP,插頭DP,斯坦納樹,斜率優化,決策單調性優化,數位DP。

可按照大小依次DP。可把指望機率轉爲計數問題。可改變DP狀態與值的對應關係:f(x) = a ->  f(a) = x。

狀壓DP:經常使用於打暴力,可分爲二進制/多進制狀壓,可預處理狀態集合。可壓輪廓線/點集,可DFS轉移一行/一格一格轉移。

區間DP:可多加一維狀態表示把當前變成什麼樣。

插頭DP:狀壓輪廓線上的左右插頭。

斯坦納樹:狀壓連通的關鍵點集,子集轉移以後spfa轉移。

斜率優化:發現DP的轉移代價有個乘積,維護凸包。可與CDQ分治結合。

決策單調性:分治寫法是[l, r]區間的最優決策所有來自於[L, R]。維護決策棧寫法是維護每一段決策分別是啥,以及段的結尾。

數位DP:預處理隨便選的方案數(記憶化搜索),而後枚舉在哪一位開始不嚴格相等。

計數:容斥原理,生成函數,組合數學,Min-Max容斥,二項式反演。

容斥原理:從剛好轉爲至少/至多。而後按照集合大小的奇偶性分配係數。有時候要減去算重的。可保證一路遞推來的全是合法的,而後減去。

生成函數:考慮待解決的問題本身跟本身的關係。連通->不連通是EGF exp。

組合數學:組合數,卡特蘭數,斯特林數等。

Min-Max容斥:求最值就是求全部子集的另外一個最值的和,配上正負1係數。集合大小爲1時係數爲1。對指望機率一樣有效。

二項式反演:若F(x) = ∑f(i),那麼f(x) = ∑C(x, i)F(i)。

數學:線性篩,杜教篩,BSGS,lucas,(ex)CRT,莫比烏斯反演,二次剩餘,矩陣乘法,高斯消元。

可O(logV)質因數分解(預處理)。

線性篩:O(n)篩積性函數。記錄每一個數的最小質因子和個數。

杜教篩:找個好求和的g跟f卷出來h,也好求和。通常是爲了把f的奇怪的項消掉來配g。

BSGS:預處理√phi(p)之內的放入hash表,而後每次跳√phi(p)步。

lucas:lucas(n, m) = lucas(n / p, m / p) * C(n % p, m % p)

CRT:考慮對其餘的模數無影響,每一個a乘上逆元便可。ex就是用擴歐解方程而後合併方程。三模數NTT的時候先對第三個模數取模而後對最終模數取模。

莫比烏斯反演:若F(x) = ∑f(d),則f(x) = ∑miu(d / x)F(d),常把gcd提早枚舉。

二次剩餘:w = a2 - n,sgn(x) = x(p - 1)/2。隨機a使sgn(w) = p-1,自定義單位負根爲√w,而後求解(a + w)(p + 1)/2

其餘:CDQ分治,總體二分,分塊,啓發式合併/分治,線段樹分治,(樹上)(帶修)(回滾)莫隊,二(三)分,帶權二分,掃描線,01分數規劃,倍增,時光倒流,隨機化,搜索,模擬,貪心,博弈論,模擬費用流。

CDQ分治:先DP完左邊而後更新右邊。可優化DP,樹上與點分治結合。可嵌套。

總體二分:一般求解第k大,有個特殊的應用是求解一條邊在scc中的時間。內部可嵌套各類東西,好比虛樹,樹套樹。

分塊:可維護序列,或者對出現次數,數值的大小,時間分塊等。時間分塊按期重建能夠優化成二進制分組。

啓發式合併:每次暴力遍歷小的集合。

啓發式分治:包括最值分治。每次花費的時間爲小的集合那一部分的時間。能夠巧妙的改變枚舉順序。

線段樹分治:把加,刪操做變成只有加的操做。內部仍是嵌套各類可撤銷數據結構。

莫隊:對詢問分塊。樹上:括號序列。每一個點重複計算時減去貢獻,分類討論。帶修:第三個指針在時間上跳動。回滾:使用可撤銷數據結構作到只有刪除/插入。

二分:直接暴力二分答案,而後check。很是經常使用!很是經常使用!

帶權二分:要使D的變化和你的值的變化相同,而後儘可能取k小的那個。感性證實(打表)凸函數。

掃描線:把二維限制轉換爲二維平面上的信息,而後掃描線。

01分數規劃:二分答案而後check。

倍增:常在樹上使用。應用普遍。

時光倒流:倒着處理會好受一些。

隨機化:隨機化check是否合法/隨機化排列以達到指望複雜度/隨機化貪心。

搜索:優先搜分支少的/最優的。

模擬:注意各類細節。

貪心:可經過微調來證實。

博弈論:sg函數。多找規律。

模擬費用流:先貪心,用堆來模擬反悔操做。

相關文章
相關標籤/搜索