ACM初級演算法

2021-06-06 12:09:39 字數 2308 閱讀 4494

acm

的演算法(覺得很好,有層次感)

oj上的一些水題

(可用來練手和增加自信

)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)

[size=5][b]初期:

[/b][/size]一.

基本演算法

: (1)

列舉. (poj1753,poj2965)

(2)貪心(poj1328,poj2109,poj2586)

(3)遞迴和分治法

. (4)遞推.

(5)構造法.(poj3295)

(6)模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.

圖演算法:

(1)圖的深度優先遍歷和廣度優先遍歷

. (2)

最短路徑演算法

(dijkstra,bellman-ford,floyd,heap+dijkstra)

(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)

(3)最小生成樹演算法

(prim,kruskal)

(poj1789,poj2485,poj1258,poj3026)

(4)拓撲排序

(poj1094)

(5)二分圖的最大匹配

(匈牙利演算法

) (poj3041,poj3020)

(6)最大流的增廣路演算法

(km演算法

). (poj1459,poj3436)三.

資料結構

. (1)

串(poj1035,poj3080,poj1936)

(2)排序(

快排、歸併排

(與逆序數有關

)、堆排

) (poj2388,poj2299)

(3)簡單並查集的應用

. (4)

雜湊表和二分查詢等高效查詢法(數的

hash,

串的hash)

(poj3349,poj3274,poj2151,poj1840,poj2002,poj2503)

(5)哈夫曼樹

(poj3253)

(6)堆

(7)trie樹(

靜態建樹、動態建樹

) (poj2513)四.

簡單搜尋

(1)深度優先搜尋

(poj2488,poj3083,poj3009,poj1321,poj2251)

(2)廣度優先搜尋

(poj3278,poj1426,poj3126,poj3087.poj3414)

(3)簡單搜尋技巧和剪枝

(poj2531,poj1416,poj2676,1129)五.

動態規劃

(1)揹包問題

. (poj1837,poj1276)

(2)型如下表的簡單

dp(可參考

lrj的書

page149):

1.e[j]=opt (poj3267,poj1836,poj1260,poj2533)

2.e[i,j]=opt (

最長公共子串行

) (poj3176,poj1080,poj1159)

3.c[i,j]=w[i,j]+opt.(

最優二分檢索樹問題)六

.數學

(1)組合數學

: 1.

加法原理和乘法原理

. 2.

排列組合

. 3.

遞推關係

. (poj3252,poj1850,poj1019,poj1942)

(2)數論.

1.素數與整除問題

2.進製位

. 3.

同餘模運算

. (poj2635, poj3292,poj1845,poj2115)

(3)計算方法

. 1.

二分法求解單調函式相關知識

.(poj3273,poj3258,poj1905,poj3122)七.

計算幾何學

. (1)

幾何公式

. (2)

叉積和點積的運用

(如線段相交的判定

,點到線段的距離等

). (poj2031,poj1039)

(3)多邊型的簡單演算法

(求面積

)和相關判定

(點在多邊型內

,多邊型是否相交

) (poj1408,poj1584)

(4)凸包. (poj2187,poj1113)

acm 初級入門 裝箱問題

總時間限制 1000ms 記憶體限制 65536kb 描述 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個 6 6 h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方...

初級排序演算法

回顧之前學習的各種排序演算法,從初級到高階,包括選擇排序,氣泡排序,插入排序,希爾排序,快速排序,歸併排序,堆排序等等,持續更新中 注 這裡實現的演算法都是遞增排序,也就是從小到大排序。思想 首先,找到陣列中最小的那個元素,其次,將它和陣列的第乙個元素交換位置 如果第乙個元素就是最小元素那麼它就和自...

初級演算法 樹

樹的大部分問題都可以通過遞迴解決,即求乙個樹的某個值可以轉化為求左子樹 右子樹的值 二叉樹最大深度就是max 左子樹的最大深度,右子樹的最大深度 1 根節點 public int maxdepth treenode root intleft maxdepth root.left intright m...