要看的書:
<算法導(dǎo)論>
<算法藝術(shù)與信息學(xué)競(jìng)賽>
<圖論的算法與程序設(shè)計(jì)>
<國際大學(xué)生程序設(shè)計(jì)競(jìng)賽例題解>
<基本算法>
<騙分導(dǎo)論>
<國際大學(xué)生程序設(shè)計(jì)競(jìng)賽例題解(一)>-<數(shù)論、計(jì)算幾何、搜索算法專集>
<國際大學(xué)生程序設(shè)計(jì)競(jìng)賽例題解(三)>-<圖論、動(dòng)態(tài)規(guī)劃算法、綜合題專集>
學(xué)習(xí)規(guī)劃:
一、第一階段(11月13日 – 12月4日)主要完成的算法:
1、基本數(shù)據(jù)結(jié)構(gòu):
線性表、鏈表(尤其雙向鏈表和循環(huán)鏈表)、棧、二叉樹
2、加減乘除四則運(yùn)算的高精度算法
3、了解算法思想:DP、貪心、二分
4、查找與排序:
二分查找、二叉排序數(shù)、qsort函數(shù)、歸并排序、HASH
5、圖論基礎(chǔ)算法:
DFS、BFS、MST(Prim)、Dijkstra、Floyd 、拓?fù)渑判?、割點(diǎn)
6、數(shù)學(xué)知識(shí):初等數(shù)論(整除、同余)
二、第二階段(12月25日 – 2月1日)主要完成的算法:
1、高級(jí)數(shù)據(jù)結(jié)構(gòu):
堆、并查集及路徑壓縮(Kruskal)、線段樹
2、圖論高級(jí)算法:
二分圖匹配(匈牙利算法)、網(wǎng)絡(luò)流、最小費(fèi)用流、最大團(tuán)、最大獨(dú)立集、中國郵路問題、找Hamilton圈、尋找歐拉回路、著色問題、連通性判定、傳遞閉包和差分約束系統(tǒng)
3、博弈算法:博弈樹、尋找必?cái)☆愃惴?
4、計(jì)算幾何:
判斷線段相交、判斷點(diǎn)是否在多邊形內(nèi)、凸包、矩形的交與并、兩直線相交問題、已知三點(diǎn)求圓心
5、高級(jí)數(shù)學(xué)知識(shí):(組合數(shù)學(xué)、具體數(shù)學(xué)中為主)
Fibonacci、Catalan數(shù)的應(yīng)用、差分序列和Stirling數(shù)、Burnside定理和置換群、容斥原理、概率問題、生成排列數(shù)
6、高級(jí)搜索技巧:
雙向BFS、A*算法(啟發(fā)式搜索)、最小消耗優(yōu)先、變深度優(yōu)先搜索
三、三個(gè)算法思想的具體訓(xùn)練內(nèi)容:
1)、DP 重中之重 (準(zhǔn)備拿出3天做DP一種類型)
要解決的經(jīng)典例題:
1、 最長不下降子序列(Longest Increasing Subsequence)
2、 最長公共子序列 (Longest Common Subsequence)
3、 矩陣鏈乘法 (Matrix Multiplication)
4、0-1背包
5、凸多邊形的最優(yōu)三角劃分
6、多邊形游戲 ---- 三角大戰(zhàn)
2)、Greedy 貪心算法 高效優(yōu)選算法
要解決的經(jīng)典問題:
1、0-1背包
2、MST(Prim、Kruskal)
3、Dijkstra
4、Huffman Tree Code(霍夫曼編碼)
3)、二分法
要解決的經(jīng)典問題:
1、 歸并排序算法求逆序數(shù) (Inversion Number)
2、 最近點(diǎn)對(duì)
3、 幾種常見算法的二分查找優(yōu)化:LIS (最長不下降子序列)