寫在前面
- 隨着四月的到來, 離省選越來越近了.
- 從NOIP到現在, 學到了很多很多東西, 有的學的比較深入, 有的只是略知一二
- 從明天開始, 進行鍼對省選的算法複習計劃. 省選前完成.
- 重點是對算法的理解和應用, 還會注重模板習慣的養成
- 一直覺得我數據結構學的還可以, 不過列出來發現會的也沒多少.
- 少就少吧, 省選夠用就行...
- 線段樹
- 樹狀數組
- 並查集
- 哈希表
- STL
- treap
- splay
- 樹鏈剖分
- 主席樹(可忽略)
- 字符串(KMP, 後綴數組)
- 掌握經典的算法, 並會應用是重點
- 經常和動態規劃結合
- 最短路(Floyed, 堆優化dijkstra, SPFA)
- 最小生成樹(Prim, Kruskal), 以及生成樹相關
- 強連通分量(Tarjan)
- 拓撲排序
- 歐拉路徑和哈密爾頓環
- 橋和關鍵路徑
- 二分圖
- 其他(2-SAT, Floyed判圈)
- 算法是基礎, 建模是關鍵
- 多看原來做過的題目, 總結建模方法
- 最大流, 最小割(Dinic)
- 費用流(SPFA)
- 上下界網絡流
- 弄清時間複雜度...
- 東西很多, 基本上都在訓練指南上有
- 我數學不好, 所以會幾個基礎算法然後考試暴力吧.
- 歸納法
- gcd
- 篩法求素數
- 普通歐拉函數, 篩法求歐拉函數
- 逆元(歐拉函數, 擴展歐幾里得), 預處理逆元
- 容斥原理
- 解線性模方程
- 離散對數(BSGS)
- 中國剩餘定理
- 組合數, 盧卡斯定理
- 莫比烏斯函數
- 矩陣乘法(循環矩陣)
- 可能到時候就搜索可以用上
- 然而我搜索練得少...
- dfs
- bfs
- A*
- IDA*
- 啓發式dfs
- 雙向dfs
- 雙向bfs
- 記憶化搜索
- 最好是想出動態規劃的方法來
- 能否用動態規劃關鍵是看有無後效性和有無重疊子問題
- 但有時看上去有後效性的問題可以轉化成沒有後效性
- 什麼優化的就看着來了
- 基本上不加優化部分分可能也能拿到少許
- 棋盤型動態規劃
- 序列型動態規劃
- 揹包型動態規劃
- 區間型動態規劃
- 劃分型動態規劃
- 路徑型動態規劃
- 樹型動態規劃
- 狀態壓縮動態規劃
- 基於連通性的動態規劃
- 斜率優化, 單調性優化, 凸殼(都不會)
- 效率極高, 但一般想不到, 思路比較怪異
- 如果滿足離線要求往往很BT
- 逆序對
- 二分, 三分
- CDQ分治
- 整體二分
- 發現從NOIP以來我還沒有做過一道貪心的題目
- 但是思想很重要
- 擬陣很神(就是沒看懂)
- 掌握的不好
- Burnside引理
- Polya定理
- 找過一般方法, 應該能應對一些題目
- 發現竟然忘了計算幾何
- 注意不要去死記, 訓練指南上的代碼普適性好但還要因題而異, 有可能有更簡單的方法
- 有時看不出是計算幾何但是可以轉化成計算幾何的題目, 比如半平面交之類的
- 基本知識(差積、點積)
- 凸包
- 多邊形
- 旋轉卡殼
- 半平面交
- 同樣是暴力, 有的人20分有的人就能40分.
- 暴力也有技巧, 而且不一定學的算法多暴力寫的就好, 往往思維活躍的人暴力寫得好(Orz wxjlzbcd)
- 大膽猜測不失爲一種好辦法.