http://www.douban.com/note/43117531/
OJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159,poj2739
,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期:
一.基本算法:
(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{D[i]+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]}.(最优二分检索树问题)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:07:43
--
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
2.进制位.
3.同余模运算.
(poj2635, poj3292,poj1845,poj2115)
(3)计算方法. ,poj3429)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:05
--
高级:
一.基本算法要求:
(1)代码快速写成,精简但不失风格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保证正确性和高效性. poj3434
二.图算法:
(1)度限制最小生成树和第K最短路. (poj1639)
(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最优比率生成树. (poj2728)
(4)最小树形图(poj3164)
(5)次小生成树.
(6)无向图、有向图的最小环
三.数据结构.
(1)trie图的建立和应用. (poj2778)
(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法
(RMQ+dfs)).(poj1330)
(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的
目的). (poj2823)
(4)左偏树(可合并堆).
(5)后缀树(非常有用的数据结构,也是赛区考题的热点).
(poj3415,poj3294)
四.搜索
(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.动态规划
(1)需要用数据结构优化的动态规划.
(poj2754,poj3378,poj3017)
(2)四边形不等式理论.
(3)较难的状态DP(poj3133)
六.数学
(1)组合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕论.
1.极大极小过程(poj3317,poj1085)
2.Nim问题.
七.计算几何学.
(1)半平面求交(poj3384,poj2540)
(2)可视图的建立(poj2966)
(3)点集最小圆覆盖.
(4)对踵点(poj2079)
八.综合题.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:25
--
下面是另一版本POJ推荐,基本都比较难,很多题目与黑书配套
=================================
推荐一些题目,希望对参与ICPC竞赛的同学有所帮助。
POJ上一些题目在
http://162.105.81.202/course/problemSolving/
可以找到解题报告。
《算法艺术与信息学竞赛》的习题提示在网上可搜到
一.动态规划
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1141
简单
http://acm.pku.edu.cn/JudgeOnline/problem?id=2288
中等,经典TSP问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
中等,状态压缩DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=1112
中等
http://acm.pku.edu.cn/JudgeOnline/problem?id=1848
中等,树形DP。
可参考《算法艺术与信息学竞赛》动态规划一节的树状模型
http://acm.zju.edu.cn/show_problem.php?pid=1234
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1947
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1946
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1737
中等,递推
http://acm.pku.edu.cn/JudgeOnline/problem?id=1821
中等,需要减少冗余计算
http://acm.zju.edu.cn/show_problem.php?pid=2561
中等,四边形不等式的简单应用
http://acm.pku.edu.cn/JudgeOnline/problem?id=1038
较难,状态压缩DP,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1390
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3017
较难,需要配合数据结构优化(我的题目^_^)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1682
较难,写起来比较麻烦
http://acm.pku.edu.cn/JudgeOnline/problem?id=2047
较难
http://acm.pku.edu.cn/JudgeOnline/problem?id=2152
难,树形DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=3028
难,状态压缩DP,题目很有意思
http://acm.pku.edu.cn/JudgeOnline/problem?id=3124
难
http://acm.pku.edu.cn/JudgeOnline/problem?id=2915
非常难
二.搜索
参考资料:
刘汝佳《算法艺术与信息学竞赛》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1011
简单,深搜入门题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
较难,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
难,IDA*,迭代加深搜索,需要较好的启发函数
http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
难,可重复K最短路,A*。
可参考解题报告:
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144
http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
难,深搜剪枝,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
难,《算法艺术与信息学竞赛》习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2989
难,深搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
很难
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:48
--
三. 常用数据结构
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
线段树资料:
http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf
树状数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt
关于线段树和树状数组更多相关内容可在网上搜到
后缀数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf
http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf
推荐题目
http://acm.pku.edu.cn/JudgeOnline/problem?id=2482
较难,线段树应用,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1151
简单,线段树应用矩形面积并,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3225
较难,线段树应用,可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233
http://acm.pku.edu.cn/JudgeOnline/problem?id=2155
难,二维树状数组。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2777
中等,线段树应用。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2274
难,堆的应用,《算法艺术与信息学竞赛》中有解答
http://acm.zju.edu.cn/show_problem.php?pid=2334
中等,左偏树,二项式堆或其他可合并堆的应用。
左偏树参考http://www.nist.gov/dads/HTML/leftisttree.html
二项式堆参见《算法导论》相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=1182
中等,并查集
http://acm.pku.edu.cn/JudgeOnline/problem?id=1816
中等,字典树
http://acm.pku.edu.cn/JudgeOnline/problem?id=2778
较难,多串匹配树
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf
http://acm.pku.edu.cn/JudgeOnline/problem?id=1743
难,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2774
较难,最长公共子串,经典问题,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2758
很难,后缀数组
可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178
http://acm.pku.edu.cn/JudgeOnline/problem?id=2448
很难,数据结构综合运用
四.图论基础
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
《网络算法与复杂性理论》谢政
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2337
简单,欧拉路
http://acm.pku.edu.cn/JudgeOnline/problem?id=3177
中等,无向图割边
http://acm.pku.edu.cn/JudgeOnline/problem?id=2942
较难,无向图双连通分支
http://acm.pku.edu.cn/JudgeOnline/problem?id=1639
中等,最小度限制生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=2728
中等,最小比率生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3013
简单,最短路问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1275
中等,差分约束系统,Bellman-Ford求解,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1252
简单,Bellman-Ford
http://acm.pku.edu.cn/JudgeOnline/problem?id=1459
中等,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=2391
较难,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=1325
中等,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2226
较难,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2195
中等,二部图最大权匹配
KM算法参考《网络算法与复杂性理论》
http://acm.pku.edu.cn/JudgeOnline/problem?id=2516
较难,二部图最大权匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=1986
中等,LCA(最近公共祖先)问题
参考Tarjan\'s LCA algorithm 《算法导论》第21章习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2723
较难,2-SAT问题
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT
http://acm.pku.edu.cn/JudgeOnline/problem?id=2749
较难,2-SAT问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=3164
较难,最小树形图
参考《网络算法与复杂性理论》中朱-刘算法
五.数论及组合计数基础
http://acm.pku.edu.cn/JudgeOnline/problem?id=1811
简单,素数判定,大数分解
参考算法导论相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=2888
较难,Burnside引理
http://acm.pku.edu.cn/JudgeOnline/problem?id=2891
中等,解模方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2154
中等,经典问题,波利亚定理
http://cs.scu.edu.cn/soj/problem.action?id=2703
难,极好的题目,Burnside引理+模线性方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2764
较难,需要数学方法,该方法在《具体数学》第七章有讲
http://acm.pku.edu.cn/JudgeOnline/problem?id=1977
简单,矩阵快速乘法
--------------------------------50题说明-------------------------------------------------------------------------
发信人: zybupt2003 (再看你一眼), 信区: ACM_ICPC
标 题: POJ推荐50题 —— 参加06年BUPT ACM暑假集训前要求完成
发信站: 北邮人论坛 (Thu Apr 13 23:12:14 2006), 站内
POJ推荐50题 —— 参加06年BUPT ACM暑假集训前要求完成
POJ == 北京大学ACM在线评测系统 http://acm.pku.edu.cn/JudgeOnline
1. 标记 难 和 稍难 的题目大家可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。
2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。
3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。
4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利用资源。
5. 50个题目要求每个题目都要写总结,养成良好的习惯。
6. 这50道题的规定是我们的建议,如果大家有自己的想法请与我们 Email 联系。
7. 建议使用 C++ 的同学在 POJ 上用 G++ 提交。
8. 形成自己编写代码的风格,至少看上去美观,思路清晰(好的代码可以很清楚反映出解题思路)。
9. 这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅解,这些是我们这些年的经验总结,所以也请
大家尊重我们的劳动成果。
10. 提交要求:一个总文件夹名为 bupt0xx (即你的比赛帐号), 这个文件夹内有各个题目类别的子目录(文件夹),将相应的解题报告放入对应
类别的文件夹。在本学期期末,小学期开始前,将该文件夹的压缩包发至 buptacm@gmail.com 。
对于每个题目只要求一个 POJxxxx.cpp 或 POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个 project 。
11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。
下面是一个解题报告的范例:
例如:POJ1000.cpp
//考查点:会不会编程序。
//思路:此题要求输入两个数, 输出两个数的和,我用 scanf 和 printf。
//提交情况:Wrong Answer 1次,忘了写 printf()。
Compile Error 2次,选错了语言,由于C++ 和 G++ 在 iostream.h 的不用引用方法;少一个大括号。
Accepted 1次。
//收获:学到了 scanf, printf 的基本用法,熟悉了 OJ 的系统环境。
//经验: 写好代码后本地编译 而且需要静态 观察,杜绝编译错误。
// AC Code
#include <stdio.h>
int main() {
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 2593
1015
1042 (也可贪心)
1141
1050
1080
1221
1260
2411 (稍难)
1276
第二类 搜索 (至少4题)
1011
1033
1129
2049
2056
2488
2492 (稍难,也可并查集)
第三类 贪心 (至少2题)
1065
2054 (难)
1521
2709
第四类 最短路 (至少3题)
1062
1125
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第六类 最大流 (至少2题)
1087
1459
1149
2516 (最小费用最大流) (难)
第七类 二分图 (至少3题)
1325
1469
2195 (KM 算法或最小费用最大流) (难)
2446
1422 and 2594
第八类 并查集 (至少2题)
1861
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
第十类 数论 (至少2题)
1061
1142
2262
2407
1811(难)
2447 (难)
第十一类 线段树 (无最少题数要求)
2352 (可用简单方法)
2528
第十二类 计算几何 (至少2题,1113凸包算法必做)
1113
1292
2148 (难)
2653
1584
第十三类 高精度 (至少3题,1001必做)
1001
1047
1131
1503
1504
1060 and 1996 (多项式)
SCU1002, 1003, 1004 (http://acm.scu.edu.cn/soj)
第十四类 模拟 (至少5题)
1029 and 1013
1083 and 2028
2234 and 1067
1012
1026
1068
1120
2271
2632
第十五类 数学 (至少4题)
2249
1023
2506
1079
1019 and 1095
1905 and 1064 (二分)
http://bbs.byr.cn/#!article/ACM_ICPC/833
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 2593
1015
1042 (也可贪心)
1141
1050
1080
1221
1260
2411 (稍难)
1276
第二类 搜索 (至少4题)
1011
1033
1129
2049
2056
2488
2492 (稍难,也可并查集)
第三类 贪心 (至少2题)
1065
2054 (难)
1521
2709
第四类 最短路 (至少3题)
1062
1125
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第六类 最大流 (至少2题)
1087
1459
1149
2516 (最小费用最大流) (难)
第七类 二分图 (至少3题)
1325
1469
2195 (KM 算法或最小费用最大流) (难)
2446
1422 and 2594
第八类 并查集 (至少2题)
1861
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
第十类 数论 (至少2题)
1061
1142
2262
2407
1811(难)
2447 (难)
第十一类 线段树 (无最少题数要求)
2352 (可用简单方法)
2528
第十二类 计算几何 (至少2题,1113凸包算法必做)
1113
1292
2148 (难)
2653
1584
第十三类 高精度 (至少3题,1001必做)
1001
1047
1131
1503
1504
1060 and 1996 (多项式)
SCU1002, 1003, 1004 (http://acm.scu.edu.cn/soj)
第十四类 模拟 (至少5题)
1029 and 1013
1083 and 2028
2234 and 1067
1012
1026
1068
1120
2271
2632
第十五类 数学 (至少4题)
2249
1023
2506
1079
1019 and 1095
1905 and 1064 (二分)
http://zhucongxie.blog.163.com/blog/static/9496481320092201134145/
最简单经典的线段树:
PKU 2352
第一类 动态规划(至少6题,2479 和 2593 必做)
2479 和 2593 (一模一样的,最大两段和,可用两个一维DP,OPT[j]保存的是在这之前能够达到最大的一段和,rOPT[j]保存的是在这之后能够达到最大的一段和)
1015
1141 (括号匹配,同时需要记录最佳匹配的序列,已收录进例程)
1050
1080 (序列比对,可参考克雷伯格的《算法设计》6.16定理)
1221 (计算凸回文方案数,已收录进例程)
1260
2411(稍难)
1276
2533 1887 最长递增递减子序列,重点考虑是否包括a(i),若是不包括,则后面的数不知该如何与opt(i)比较,若是包括,则最后要找的最大值不一定是opt[n],而是opt[1...n]最大的一个。
第二类 搜索(至少4题)
1011
1033
1129
2049
2056
2488(DFS,由于我在判断结束条件时写成i=m && j=n了。。。导致错误,而且也没有用其他数据来测)
2492(稍难,也可并查集)
第三类 贪心(至少2题)
1042(可贪心)
1065(排序加贪心)
2054(难)
1521
2709
第四类 最短路 (至少3题)
1062
1125(Floyd算法,第一次写时要注意谨慎判断迭代值的条件。)
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第八类 并查集 (至少2题)
1861(5S的题目,如果不对要合并的集合做优化,则会超时)
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
Catalan数,大整数乘法和除法:POJ 2084
ACM训练方案(目前):
OJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159 ,poj2739 ,poj1083 ,poj2262 ,poj1503 ,poj3006 ,poj2255,poj3094 )
初期:
一.基本算法:
(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{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]}.(最优二分检索树问题)
OJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159,poj2739
,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期:
一.基本算法:
(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{D[i]+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]}.(最优二分检索树问题)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:07:43
--
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
2.进制位.
3.同余模运算.
(poj2635, poj3292,poj1845,poj2115)
(3)计算方法. ,poj3429)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:05
--
高级:
一.基本算法要求:
(1)代码快速写成,精简但不失风格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保证正确性和高效性. poj3434
二.图算法:
(1)度限制最小生成树和第K最短路. (poj1639)
(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最优比率生成树. (poj2728)
(4)最小树形图(poj3164)
(5)次小生成树.
(6)无向图、有向图的最小环
三.数据结构.
(1)trie图的建立和应用. (poj2778)
(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法
(RMQ+dfs)).(poj1330)
(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的
目的). (poj2823)
(4)左偏树(可合并堆).
(5)后缀树(非常有用的数据结构,也是赛区考题的热点).
(poj3415,poj3294)
四.搜索
(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.动态规划
(1)需要用数据结构优化的动态规划.
(poj2754,poj3378,poj3017)
(2)四边形不等式理论.
(3)较难的状态DP(poj3133)
六.数学
(1)组合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕论.
1.极大极小过程(poj3317,poj1085)
2.Nim问题.
七.计算几何学.
(1)半平面求交(poj3384,poj2540)
(2)可视图的建立(poj2966)
(3)点集最小圆覆盖.
(4)对踵点(poj2079)
八.综合题.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:25
--
下面是另一版本POJ推荐,基本都比较难,很多题目与黑书配套
=================================
推荐一些题目,希望对参与ICPC竞赛的同学有所帮助。
POJ上一些题目在
http://162.105.81.202/course/problemSolving/
可以找到解题报告。
《算法艺术与信息学竞赛》的习题提示在网上可搜到
一.动态规划
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1141
简单
http://acm.pku.edu.cn/JudgeOnline/problem?id=2288
中等,经典TSP问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
中等,状态压缩DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=1112
中等
http://acm.pku.edu.cn/JudgeOnline/problem?id=1848
中等,树形DP。
可参考《算法艺术与信息学竞赛》动态规划一节的树状模型
http://acm.zju.edu.cn/show_problem.php?pid=1234
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1947
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1946
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1737
中等,递推
http://acm.pku.edu.cn/JudgeOnline/problem?id=1821
中等,需要减少冗余计算
http://acm.zju.edu.cn/show_problem.php?pid=2561
中等,四边形不等式的简单应用
http://acm.pku.edu.cn/JudgeOnline/problem?id=1038
较难,状态压缩DP,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1390
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3017
较难,需要配合数据结构优化(我的题目^_^)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1682
较难,写起来比较麻烦
http://acm.pku.edu.cn/JudgeOnline/problem?id=2047
较难
http://acm.pku.edu.cn/JudgeOnline/problem?id=2152
难,树形DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=3028
难,状态压缩DP,题目很有意思
http://acm.pku.edu.cn/JudgeOnline/problem?id=3124
难
http://acm.pku.edu.cn/JudgeOnline/problem?id=2915
非常难
二.搜索
参考资料:
刘汝佳《算法艺术与信息学竞赛》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1011
简单,深搜入门题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
较难,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
难,IDA*,迭代加深搜索,需要较好的启发函数
http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
难,可重复K最短路,A*。
可参考解题报告:
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144
http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
难,深搜剪枝,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
难,《算法艺术与信息学竞赛》习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2989
难,深搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
很难
-- 作者:蕉下客
-- 发布时间:2008/8/20 12:08:48
--
三. 常用数据结构
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
线段树资料:
http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf
树状数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt
关于线段树和树状数组更多相关内容可在网上搜到
后缀数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf
http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf
推荐题目
http://acm.pku.edu.cn/JudgeOnline/problem?id=2482
较难,线段树应用,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1151
简单,线段树应用矩形面积并,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3225
较难,线段树应用,可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233
http://acm.pku.edu.cn/JudgeOnline/problem?id=2155
难,二维树状数组。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2777
中等,线段树应用。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2274
难,堆的应用,《算法艺术与信息学竞赛》中有解答
http://acm.zju.edu.cn/show_problem.php?pid=2334
中等,左偏树,二项式堆或其他可合并堆的应用。
左偏树参考http://www.nist.gov/dads/HTML/leftisttree.html
二项式堆参见《算法导论》相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=1182
中等,并查集
http://acm.pku.edu.cn/JudgeOnline/problem?id=1816
中等,字典树
http://acm.pku.edu.cn/JudgeOnline/problem?id=2778
较难,多串匹配树
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf
http://acm.pku.edu.cn/JudgeOnline/problem?id=1743
难,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2774
较难,最长公共子串,经典问题,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2758
很难,后缀数组
可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178
http://acm.pku.edu.cn/JudgeOnline/problem?id=2448
很难,数据结构综合运用
四.图论基础
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
《网络算法与复杂性理论》谢政
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2337
简单,欧拉路
http://acm.pku.edu.cn/JudgeOnline/problem?id=3177
中等,无向图割边
http://acm.pku.edu.cn/JudgeOnline/problem?id=2942
较难,无向图双连通分支
http://acm.pku.edu.cn/JudgeOnline/problem?id=1639
中等,最小度限制生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=2728
中等,最小比率生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3013
简单,最短路问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1275
中等,差分约束系统,Bellman-Ford求解,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1252
简单,Bellman-Ford
http://acm.pku.edu.cn/JudgeOnline/problem?id=1459
中等,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=2391
较难,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=1325
中等,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2226
较难,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2195
中等,二部图最大权匹配
KM算法参考《网络算法与复杂性理论》
http://acm.pku.edu.cn/JudgeOnline/problem?id=2516
较难,二部图最大权匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=1986
中等,LCA(最近公共祖先)问题
参考Tarjan\'s LCA algorithm 《算法导论》第21章习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2723
较难,2-SAT问题
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT
http://acm.pku.edu.cn/JudgeOnline/problem?id=2749
较难,2-SAT问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=3164
较难,最小树形图
参考《网络算法与复杂性理论》中朱-刘算法
五.数论及组合计数基础
http://acm.pku.edu.cn/JudgeOnline/problem?id=1811
简单,素数判定,大数分解
参考算法导论相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=2888
较难,Burnside引理
http://acm.pku.edu.cn/JudgeOnline/problem?id=2891
中等,解模方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2154
中等,经典问题,波利亚定理
http://cs.scu.edu.cn/soj/problem.action?id=2703
难,极好的题目,Burnside引理+模线性方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2764
较难,需要数学方法,该方法在《具体数学》第七章有讲
http://acm.pku.edu.cn/JudgeOnline/problem?id=1977
简单,矩阵快速乘法
--------------------------------50题说明-------------------------------------------------------------------------
发信人: zybupt2003 (再看你一眼), 信区: ACM_ICPC
标 题: POJ推荐50题 —— 参加06年BUPT ACM暑假集训前要求完成
发信站: 北邮人论坛 (Thu Apr 13 23:12:14 2006), 站内
POJ推荐50题 —— 参加06年BUPT ACM暑假集训前要求完成
POJ == 北京大学ACM在线评测系统 http://acm.pku.edu.cn/JudgeOnline
1. 标记 难 和 稍难 的题目大家可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。
2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。
3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。
4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利用资源。
5. 50个题目要求每个题目都要写总结,养成良好的习惯。
6. 这50道题的规定是我们的建议,如果大家有自己的想法请与我们 Email 联系。
7. 建议使用 C++ 的同学在 POJ 上用 G++ 提交。
8. 形成自己编写代码的风格,至少看上去美观,思路清晰(好的代码可以很清楚反映出解题思路)。
9. 这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅解,这些是我们这些年的经验总结,所以也请
大家尊重我们的劳动成果。
10. 提交要求:一个总文件夹名为 bupt0xx (即你的比赛帐号), 这个文件夹内有各个题目类别的子目录(文件夹),将相应的解题报告放入对应
类别的文件夹。在本学期期末,小学期开始前,将该文件夹的压缩包发至 buptacm@gmail.com 。
对于每个题目只要求一个 POJxxxx.cpp 或 POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个 project 。
11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。
下面是一个解题报告的范例:
例如:POJ1000.cpp
//考查点:会不会编程序。
//思路:此题要求输入两个数, 输出两个数的和,我用 scanf 和 printf。
//提交情况:Wrong Answer 1次,忘了写 printf()。
Compile Error 2次,选错了语言,由于C++ 和 G++ 在 iostream.h 的不用引用方法;少一个大括号。
Accepted 1次。
//收获:学到了 scanf, printf 的基本用法,熟悉了 OJ 的系统环境。
//经验: 写好代码后本地编译 而且需要静态 观察,杜绝编译错误。
// AC Code
#include <stdio.h>
int main() {
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 2593
1015
1042 (也可贪心)
1141
1050
1080
1221
1260
2411 (稍难)
1276
第二类 搜索 (至少4题)
1011
1033
1129
2049
2056
2488
2492 (稍难,也可并查集)
第三类 贪心 (至少2题)
1065
2054 (难)
1521
2709
第四类 最短路 (至少3题)
1062
1125
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第六类 最大流 (至少2题)
1087
1459
1149
2516 (最小费用最大流) (难)
第七类 二分图 (至少3题)
1325
1469
2195 (KM 算法或最小费用最大流) (难)
2446
1422 and 2594
第八类 并查集 (至少2题)
1861
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
第十类 数论 (至少2题)
1061
1142
2262
2407
1811(难)
2447 (难)
第十一类 线段树 (无最少题数要求)
2352 (可用简单方法)
2528
第十二类 计算几何 (至少2题,1113凸包算法必做)
1113
1292
2148 (难)
2653
1584
第十三类 高精度 (至少3题,1001必做)
1001
1047
1131
1503
1504
1060 and 1996 (多项式)
SCU1002, 1003, 1004 (http://acm.scu.edu.cn/soj)
第十四类 模拟 (至少5题)
1029 and 1013
1083 and 2028
2234 and 1067
1012
1026
1068
1120
2271
2632
第十五类 数学 (至少4题)
2249
1023
2506
1079
1019 and 1095
1905 and 1064 (二分)
http://bbs.byr.cn/#!article/ACM_ICPC/833
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 2593
1015
1042 (也可贪心)
1141
1050
1080
1221
1260
2411 (稍难)
1276
第二类 搜索 (至少4题)
1011
1033
1129
2049
2056
2488
2492 (稍难,也可并查集)
第三类 贪心 (至少2题)
1065
2054 (难)
1521
2709
第四类 最短路 (至少3题)
1062
1125
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第六类 最大流 (至少2题)
1087
1459
1149
2516 (最小费用最大流) (难)
第七类 二分图 (至少3题)
1325
1469
2195 (KM 算法或最小费用最大流) (难)
2446
1422 and 2594
第八类 并查集 (至少2题)
1861
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
第十类 数论 (至少2题)
1061
1142
2262
2407
1811(难)
2447 (难)
第十一类 线段树 (无最少题数要求)
2352 (可用简单方法)
2528
第十二类 计算几何 (至少2题,1113凸包算法必做)
1113
1292
2148 (难)
2653
1584
第十三类 高精度 (至少3题,1001必做)
1001
1047
1131
1503
1504
1060 and 1996 (多项式)
SCU1002, 1003, 1004 (http://acm.scu.edu.cn/soj)
第十四类 模拟 (至少5题)
1029 and 1013
1083 and 2028
2234 and 1067
1012
1026
1068
1120
2271
2632
第十五类 数学 (至少4题)
2249
1023
2506
1079
1019 and 1095
1905 and 1064 (二分)
http://zhucongxie.blog.163.com/blog/static/9496481320092201134145/
最简单经典的线段树:
PKU 2352
第一类 动态规划(至少6题,2479 和 2593 必做)
2479
1015
1141
1050
1080
1221 (计算凸回文方案数,已收录进例程)
1260
2411(稍难)
1276
2533 1887 最长递增递减子序列,重点考虑是否包括a(i),若是不包括,则后面的数不知该如何与opt(i)比较,若是包括,则最后要找的最大值不一定是opt[n],而是opt[1...n]最大的一个。
第二类 搜索(至少4题)
1011
1033
1129
2049
2056
2488(DFS,由于我在判断结束条件时写成i=m && j=n了。。。导致错误,而且也没有用其他数据来测)
2492(稍难,也可并查集)
第三类 贪心(至少2题)
1042(可贪心)
1065(排序加贪心)
2054(难)
1521
2709
第四类 最短路 (至少3题)
1062
1125(Floyd算法,第一次写时要注意谨慎判断迭代值的条件。)
1797
2253
2679 Bellman-Ford (难)
第五类 最小生成树 (至少2题, 而且 Prim 和 Kruskal 至少各用一次)
1251
1258
1789
2485
第八类 并查集 (至少2题)
1861(5S的题目,如果不对要合并的集合做优化,则会超时)
1182 (难)
1308
2524
第九类 快速查找 (B-Search, Hash and so on) (至少3题)
2503
2513 (+Euler回路的判定)
1035
1200
2002
Catalan数,大整数乘法和除法:POJ 2084
ACM训练方案(目前):
OJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159
初期:
一.基本算法:
(1)枚举. (poj1753
(2)贪心(poj1328,poj2109
(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
(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{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
3.C(i,j)=w(i,j)+opt{C(i,k-1+C[k,j]}.(最优二分检索树问题)