经典数据结构

来源:互联网 发布:长江证券for mac 编辑:程序博客网 时间:2024/06/04 22:48


跳跃表 树状数组  线段树 伸展树静态二叉检索树(POJ2482,POJ2352)


单调队列 单调栈 


一致哈希表 并查集


稀疏表 环形缓存 双端队列(常常在动态规划中起到优化状态转移的目的 POJ 2823)


折半枚举 分桶法和平方分割


快速排序  堆排序  二分搜索  尺取法 

贪心算法 

数的hash 串的hash

哈夫曼树(POJ 3253)



5.1-5.8

搜索:

简单搜索技巧和剪枝(POJ2531,POJ1416,POJ2676,POJ1129)

最优化剪枝和可行性剪枝

搜索的技巧和优化(POJ3411,POJ1724)

记忆化搜索(POJ3373,POJ1691)

广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)

深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)



5.8-5.15

动态规划:

1)背包问题. (poj1837,poj1276)
     (2)型如下表的简单DP(可参考lrj的书 page149):
       1.E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
       2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)    
         (poj3176,poj1080,poj1159)
       3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)

(1)较为复杂的动态规划(如动态规划解特别的施行商问题等)
         (poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
     (2)记录状态的动态规划. (POJ3254,poj2411,poj1185)
     (3)树型动态规划(poj2057,poj1947,poj2486,poj3140)

 (1)需要用数据结构优化的动态规划.
         (poj2754,poj3378,poj3017)
 

5.15-5.22

kmp(POJ1961,POJ2406)

字典树  后缀树(POJ3415,POJ3294) 主席树 后缀数组 Trie树 AC自动机 

红黑树 B树 B+树 R树  2-3-4树 K-d 树 


5.22-5.29

堆 二项堆  斐波那契堆 Treap树堆 


LCA和RMQ问题(LCA有离线算法(并查集+dfs)和在线算法(RMQ+dfs)POJ 1330







0 0
原创粉丝点击