Saturday, November 28, 2015

POJ 50


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]}.(最优二分检索树问题)

No comments:

Post a Comment

Labels

GeeksforGeeks (976) Algorithm (811) LeetCode (663) to-do (600) Review (373) Classic Algorithm (334) Classic Interview (298) Dynamic Programming (263) LeetCode - Review (235) Google Interview (233) Tree (146) POJ (137) Difficult Algorithm (136) EPI (127) Different Solutions (119) Bit Algorithms (111) Cracking Coding Interview (110) Smart Algorithm (110) Math (91) HackerRank (85) Lintcode (83) Binary Search (73) Graph Algorithm (73) Greedy Algorithm (61) Interview Corner (61) Binary Tree (58) List (58) DFS (56) Algorithm Interview (53) Advanced Data Structure (52) Codility (52) ComProGuide (52) LeetCode - Extended (47) USACO (46) Geometry Algorithm (45) BFS (43) Data Structure (42) Mathematical Algorithm (42) ACM-ICPC (41) Jobdu (39) Stack (39) Binary Search Tree (38) Interval (38) Recursive Algorithm (38) String Algorithm (38) Knapsack (37) Codeforces (36) Introduction to Algorithms (36) Matrix (36) Must Known (36) Beauty of Programming (35) Sort (35) Space Optimization (34) Array (33) Trie (33) prismoskills (33) Backtracking (32) Segment Tree (32) Union-Find (32) HDU (31) Google Code Jam (30) Permutation (30) Puzzles (30) Array O(N) (29) Data Structure Design (29) Company-Zenefits (28) Microsoft 100 - July (28) to-do-must (28) Random (27) Sliding Window (27) GeeksQuiz (25) Logic Thinking (25) hihocoder (25) High Frequency (23) Palindrome (23) Algorithm Game (22) Company - LinkedIn (22) Graph (22) Hash (22) Queue (22) Binary Indexed Trees (21) DFS + Review (21) TopCoder (21) Brain Teaser (20) CareerCup (20) Company - Twitter (20) Pre-Sort (20) Company-Facebook (19) UVA (19) Probabilities (18) Follow Up (17) Merge Sort (17) Codercareer (16) Company-Uber (16) Game Theory (16) Heap (16) Shortest Path (16) String Search (16) Topological Sort (16) Tree Traversal (16) itint5 (16) Iterator (15) O(N) (15) Bisection Method (14) Difficult (14) Number (14) Number Theory (14) Post-Order Traverse (14) Priority Quieue (14) Amazon Interview (13) BST (13) Basic Algorithm (13) Codechef (13) Majority (13) mitbbs (13) Combination (12) Computational Geometry (12) KMP (12) Long Increasing Sequence(LIS) (12) Modify Tree (12) Ordered Stack (12) Reconstruct Tree (12) Reservoir Sampling (12) 尺取法 (12) AOJ (11) DFS+Backtracking (11) Fast Power Algorithm (11) Graph DFS (11) LCA (11) LeetCode - DFS (11) Princeton (11) Tree DP (11) 挑战程序设计竞赛 (11) Binary Search - Bisection (10) Company - Microsoft (10) Company-Airbnb (10) Euclidean GCD (10) Facebook Hacker Cup (10) HackerRank Easy (10) Reverse Thinking (10) Rolling Hash (10) SPOJ (10) Theory (10) Tutorialhorizon (10) X Sum (10) Coin Change (9) Divide and Conquer (9) Lintcode - Review (9) Mathblog (9) Max-Min Flow (9) Stack Overflow (9) Stock (9) Two Pointers (9) Book Notes (8) Bottom-Up (8) DP-Space Optimization (8) Graph BFS (8) LeetCode - DP (8) LeetCode Hard (8) Prefix Sum (8) Prime (8) Quick Sort (8) Suffix Tree (8) System Design (8) Tech-Queries (8) Time Complexity (8) Use XOR (8) 穷竭搜索 (8) Algorithm Problem List (7) DFS+BFS (7) Facebook Interview (7) Fibonacci Numbers (7) Game Nim (7) HackerRank Difficult (7) Hackerearth (7) Interval Tree (7) Linked List (7) Longest Common Subsequence(LCS) (7) Math-Divisible (7) Miscs (7) O(1) Space (7) Probability DP (7) Radix Sort (7) Simulation (7) Xpost (7) n00tc0d3r (7) 蓝桥杯 (7) Bucket Sort (6) Catalan Number (6) Classic Data Structure Impl (6) DFS+DP (6) DP - Tree (6) How To (6) Interviewstreet (6) Kadane’s Algorithm (6) Knapsack - MultiplePack (6) Level Order Traversal (6) Manacher (6) Minimum Spanning Tree (6) One Pass (6) Programming Pearls (6) Quick Select (6) Rabin-Karp (6) Randomized Algorithms (6) Sampling (6) Schedule (6) Suffix Array (6) Threaded (6) reddit (6) AI (5) Art Of Programming-July (5) Big Data (5) Brute Force (5) Code Kata (5) Codility-lessons (5) Coding (5) Company - WMware (5) Crazyforcode (5) DFS+Cache (5) DP-Multiple Relation (5) DP-Print Solution (5) Dutch Flag (5) Fast Slow Pointers (5) Graph Cycle (5) Hash Strategy (5) Immutability (5) Inversion (5) Java (5) Kadane - Extended (5) Matrix Chain Multiplication (5) Microsoft Interview (5) Morris Traversal (5) Pruning (5) Quadtrees (5) Quick Partition (5) Quora (5) SPFA(Shortest Path Faster Algorithm) (5) Subarray Sum (5) Sweep Line (5) Traversal Once (5) TreeMap (5) jiuzhang (5) 单调栈 (5) 树形DP (5) 1point3acres (4) Anagram (4) Approximate Algorithm (4) Backtracking-Include vs Exclude (4) Brute Force - Enumeration (4) Chess Game (4) Company-Amazon (4) Consistent Hash (4) Convex Hull (4) Cycle (4) DP-Include vs Exclude (4) Dijkstra (4) Distributed (4) Eulerian Cycle (4) Flood fill (4) Graph-Classic (4) HackerRank AI (4) Histogram (4) Kadane Max Sum (4) Knapsack - Mixed (4) Knapsack - Unbounded (4) Left and Right Array (4) MinMax (4) Multiple Data Structures (4) N Queens (4) Nerd Paradise (4) Parallel Algorithm (4) Practical Algorithm (4) Pre-Sum (4) Probability (4) Programcreek (4) Spell Checker (4) Stock Maximize (4) Subsets (4) Sudoku (4) Symbol Table (4) TreeSet (4) Triangle (4) Water Jug (4) Word Ladder (4) algnotes (4) fgdsb (4) to-do-2 (4) 最大化最小值 (4) A Star (3) Abbreviation (3) Algorithm - Brain Teaser (3) Algorithm Design (3) Anagrams (3) B Tree (3) Big Data Algorithm (3) Binary Search - Smart (3) Caterpillar Method (3) Coins (3) Company - Groupon (3) Company - Indeed (3) Cumulative Sum (3) DP-Fill by Length (3) DP-Two Variables (3) Dedup (3) Dequeue (3) Dropbox (3) Easy (3) Edit Distance (3) Expression (3) Finite Automata (3) Forward && Backward Scan (3) Github (3) GoLang (3) Include vs Exclude (3) Joseph (3) Jump Game (3) Knapsack-多重背包 (3) LeetCode - Bit (3) LeetCode - TODO (3) Linked List Merge Sort (3) LogN (3) Master Theorem (3) Maze (3) Min Cost Flow (3) Minesweeper (3) Missing Numbers (3) NP Hard (3) Online Algorithm (3) Pascal's Triangle (3) Pattern Match (3) Project Euler (3) Rectangle (3) Scala (3) SegmentFault (3) Stack - Smart (3) State Machine (3) Streaming Algorithm (3) Subset Sum (3) Subtree (3) Transform Tree (3) Two Pointers Window (3) Warshall Floyd (3) With Random Pointer (3) Word Search (3) bookkeeping (3) codebytes (3) Activity Selection Problem (2) Advanced Algorithm (2) AnAlgorithmADay (2) Application of Algorithm (2) Array Merge (2) BOJ (2) BT - Path Sum (2) Balanced Binary Search Tree (2) Bellman Ford (2) Binomial Coefficient (2) Bit Mask (2) Bit-Difficult (2) Bloom Filter (2) Book Coding Interview (2) Branch and Bound Method (2) Clock (2) Codesays (2) Company - Baidu (2) Complete Binary Tree (2) DFS+BFS, Flood Fill (2) DP - DFS (2) DP-3D Table (2) DP-Classical (2) DP-Output Solution (2) DP-Slide Window Gap (2) DP-i-k-j (2) DP-树形 (2) Distributed Algorithms (2) Divide and Conqure (2) Doubly Linked List (2) GoHired (2) Graham Scan (2) Graph - Bipartite (2) Graph BFS+DFS (2) Graph Coloring (2) Graph-Cut Vertices (2) Hamiltonian Cycle (2) Huffman Tree (2) In-order Traverse (2) Include or Exclude Last Element (2) Information Retrieval (2) Interview - Linkedin (2) Invariant (2) Islands (2) Knuth Shuffle (2) LeetCode - Recursive (2) Linked Interview (2) Linked List Sort (2) Longest SubArray (2) Lucene-Solr (2) MST (2) MST-Kruskal (2) Math-Remainder Queue (2) Matrix Power (2) Minimum Vertex Cover (2) Negative All Values (2) Number Each Digit (2) Numerical Method (2) Object Design (2) Order Statistic Tree (2) Palindromic (2) Parentheses (2) Parser (2) Peak (2) Programming (2) Range Minimum Query (2) Reuse Forward Backward (2) Robot (2) Rosettacode (2) Scan from right (2) Search (2) Shuffle (2) Sieve of Eratosthenes (2) SimHash (2) Simple Algorithm (2) Skyline (2) Spatial Index (2) Stream (2) Strongly Connected Components (2) Summary (2) TV (2) Tile (2) Traversal From End (2) Tree Sum (2) Tree Traversal Return Multiple Values (2) Word Break (2) Word Graph (2) Word Trie (2) Young Tableau (2) 剑指Offer (2) 数位DP (2) 1-X (1) 51Nod (1) Akka (1) Algorithm - How To (1) Algorithm - New (1) Algorithm Series (1) Algorithms Part I (1) Analysis of Algorithm (1) Array-Element Index Negative (1) Array-Rearrange (1) Auxiliary Array (1) Auxiliary Array: Inc&Dec (1) BACK (1) BK-Tree (1) BZOJ (1) Basic (1) Bayes (1) Beauty of Math (1) Big Integer (1) Big Number (1) Binary (1) Binary Tree Variant (1) Bipartite (1) Bit-Missing Number (1) BitMap (1) BitMap index (1) BitSet (1) Bug Free Code (1) BuildIt (1) C/C++ (1) CC Interview (1) Cache (1) Calculate Height at Same Recusrion (1) Cartesian tree (1) Check Tree Property (1) Chinese (1) Circular Buffer (1) Code Quality (1) Codesolutiony (1) Company - Alibaba (1) Company - Palantir (1) Company - WalmartLabs (1) Company-Apple (1) Company-Epic (1) Company-Salesforce (1) Company-Snapchat (1) Company-Yelp (1) Compression Algorithm (1) Concurrency (1) Convert BST to DLL (1) Convert DLL to BST (1) Custom Sort (1) Cyclic Replacement (1) DFS-Matrix (1) DP - Probability (1) DP Fill Diagonal First (1) DP-Difficult (1) DP-End with 0 or 1 (1) DP-Fill Diagonal First (1) DP-Graph (1) DP-Left and Right Array (1) DP-MaxMin (1) DP-Memoization (1) DP-Node All Possibilities (1) DP-Optimization (1) DP-Preserve Previous Value (1) DP-Print All Solution (1) Database (1) Detect Negative Cycle (1) Directed Graph (1) Do Two Things at Same Recusrion (1) Domino (1) Dr Dobb's (1) Duplicate (1) Equal probability (1) External Sort (1) FST (1) Failure Function (1) Fraction (1) Front End Pointers (1) Funny (1) Fuzzy String Search (1) Game (1) Generating Function (1) Generation (1) Genetic algorithm (1) GeoHash (1) Geometry - Orientation (1) Google APAC (1) Graph But No Graph (1) Graph Transpose (1) Graph Traversal (1) Graph-Coloring (1) Graph-Longest Path (1) Gray Code (1) HOJ (1) Hanoi (1) Hard Algorithm (1) How Hash (1) How to Test (1) Improve It (1) In Place (1) Inorder-Reverse Inorder Traverse Simultaneously (1) Interpolation search (1) Interview (1) Interview - Easy (1) Interview - Facebook (1) Isomorphic (1) JDK8 (1) K Dimensional Tree (1) Knapsack - Fractional (1) Knapsack - ZeroOnePack (1) Knight (1) Kosaraju’s algorithm (1) Kruskal (1) Kruskal MST (1) Kth Element (1) Least Common Ancestor (1) LeetCode - Binary Tree (1) LeetCode - Coding (1) LeetCode - Detail (1) LeetCode - Related (1) LeetCode Diffcult (1) Linked List Reverse (1) Linkedin (1) Linkedin Interview (1) Local MinMax (1) Logic Pattern (1) Longest Common Subsequence (1) Longest Common Substring (1) Longest Prefix Suffix(LPS) (1) Manhattan Distance (1) Map && Reverse Map (1) Math - Induction (1) Math-Multiply (1) Math-Sum Of Digits (1) Matrix - O(N+M) (1) Matrix BFS (1) Matrix Graph (1) Matrix Search (1) Matrix+DP (1) Matrix-Rotate (1) Max Min So Far (1) Median (1) Memory-Efficient (1) MinHash (1) MinMax Heap (1) Monotone Queue (1) Monto Carlo (1) Multi-Reverse (1) Multiple DFS (1) Multiple Tasks (1) Next Successor (1) Offline Algorithm (1) PAT (1) Parent-Only Tree (1) Partition (1) Path Finding (1) Patience Sort (1) Persistent (1) Pigeon Hole Principle (1) Power Set (1) Pratical Algorithm (1) Probabilistic Data Structure (1) Proof (1) Python (1) Queue & Stack (1) RSA (1) Ranking (1) Rddles (1) ReHash (1) Realtime (1) Recurrence Relation (1) Recursive DFS (1) Recursive to Iterative (1) Red-Black Tree (1) Region (1) Regular Expression (1) Resources (1) Reverse Inorder Traversal (1) Robin (1) Selection (1) Self Balancing BST (1) Similarity (1) Sort && Binary Search (1) String Algorithm. Symbol Table (1) String DP (1) String Distance (1) SubMatrix (1) Subsequence (1) System of Difference Constraints(差分约束系统) (1) TSP (1) Ternary Search Tree (1) Test (1) Thread (1) TimSort (1) Top-Down (1) Tournament (1) Tournament Tree (1) Transform Tree in Place (1) Tree Diameter (1) Tree Rotate (1) Trie + DFS (1) Trie and Heap (1) Trie vs Hash (1) Trie vs HashMap (1) Triplet (1) Two Data Structures (1) Two Stacks (1) USACO - Classical (1) USACO - Problems (1) UyHiP (1) Valid Tree (1) Vector (1) Wiggle Sort (1) Wikipedia (1) Yahoo Interview (1) ZOJ (1) baozitraining (1) codevs (1) cos126 (1) javabeat (1) jum (1) namic Programming (1) sqrt(N) (1) 两次dijkstra (1) 九度 (1) 二进制枚举 (1) 夹逼法 (1) 归一化 (1) 折半枚举 (1) 枚举 (1) 状态压缩DP (1) 男人八题 (1) 英雄会 (1) 逆向思维 (1)

Popular Posts