poj题目推荐+50题说明

初期:
一.基本算法:
    (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 (即你的比赛帐号), 这个文件夹内有各个题目类别的子目录(文件夹),将相应的解题报告放入对应
 
类别的文件夹。在本学期期末,小学期开始前,将该文件夹的压缩包发至 [email protected]
 
对于每个题目只要求一个 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 (二分)
 
  
 
备注:
 
  
 
你可以到北邮人论坛“算法与程序设计竞赛”版(ACM_ICPC)讨论这些题目,但请不要贴自己通过的代码,否则后果自负。同时你也可以在
 
BUPT ACM QQ群里寻求帮助。另外,BUPT ACM FTP中有很多参考资料可供使用。如果对《POJ推荐50题》有任何疑问,请通过Email或北邮人我们
 
的版面提出。
 
请各位同学独立完成题目,我们会对你最后提交的代码进行严格的检查。
 
  
 
集训队Email: [email protected]
 
BUPT ACM QQ群: 16023016
 
北邮人论坛 算法与程序设计竞赛版
 
http://forum.byr.edu.cn/wForum/board.php?name=ACM_ICPC
 
BUPT ACM FTP
 
Address: ftp://
www.cs.bupt.cn/acm
 
ID: acmguest
 
PASSWORD: acmftp
 
(注意地址后面有/acm)

你可能感兴趣的:(Algorithm,数据结构,算法,优化,网络,email)