POJ recommends 50 questions
1. You can look at the questions marked as "difficult" and "slightly difficult" and think about them without any requirement. Of course, competent personnel can cut them out directly.
2. The question marked as A and B is similar. We suggest you do it together. You can make A comparison and summary, and the two are counted as one question.
3. There are about 70 questions in the list. 50 of them are selected, and each type of question has a minimum limit.
4. Many questions here have code on bupt acm ftp. Please use resources properly.
5. 50 questions require that each question be summarized to form a good habit.
6. The purpose of this list is to give everyone an understanding of algorithms in various aspects, which may be demanding and doggy. Please forgive me. These are the lessons we have learned over the years, therefore, please respect the fruits of our work.
The first type of dynamic planning (at least 6 questions, 2479 and 2593 required)
2479 and 2593 1015 1042 (greedy) 1141 1050 1080 1221 1260 2411 (slightly difficult) 1276
Category 2 search (at least 4 questions)
1011 1033 1129 2049 2056 2488 2492 (a little difficult, you can also check the set)
Third type greedy (at least 2 questions)
1065 2054 (difficult) 1521 2709
Category 4 shortest path (at least 3 questions)
1062 1125 1797 2253 2679 Bellman-Ford (hard)
Class 5 minimal spanning tree (at least 2 questions, and Prim and Kruskal are used at least once)
1251 1258 1789 2485
Maximum stream of category 6 (at least 2 questions)
1087 1459 1149 2516 (maximum flow at minimum cost) (difficult)
Class 7 bipartite graph (at least 3 questions)
1325 1469 2195 (KM algorithm or minimum cost Max stream) (hard) 2446 1422 and 2594
Class 8 concurrent queries (at least 2 questions)
1861 1182 (difficult) 1308 2524
Class 9 Quick Search (B-Search, Hash and so on) (at least 3 questions)
2503 2513 (+ Euler loop determination) 1035 1200 2002
Class 10 number theory (at least 2 questions)
1061 1142 2262 2407 1811 (difficult) 2447 (difficult)
11th class line segment tree (no minimum number of questions required)
2352 (simple method available) 2528
12th class computational ry (at least 2 questions, 1113 convex hull algorithms required)
1113 1292 2148 (difficult) 2653 1584
13th categories of precision (at least 3 questions, 1001 required)
1001 1047 1131 1503 1504 and 1060 (polynomial) SCU1002, 1996 4 (http://acm.scu.edu.cn/soj)
14th class simulation (at least 5 questions)
1029 and 1013 1083 and 2028 2234 and 1067 1012 1026 1068 1120 2271
15th class mathematics (at least 4 questions)
2249 1023 2506 1079 1019 and 1095 1905 and 1064 (binary)
Some questions on OJ (can be used to train hands and increase confidence)
(Poj3299, poj2159, poj2739, poj1083, poj2262, poj1503, poj3006, poj2255, poj3094)
Initial stage:
I. Basic algorithms:
(1) Enumeration. (poj1753, poj2965)
(2) Greedy (poj1328, poj2109, poj2586)
(3) recursion and divide and conquer.
(4) recurrence.
(5) constructor. (poj3295)
(6) simulation method. (poj1068, poj2632, poj1573, poj2993, poj2996)
II. Graph algorithm:
(1) depth first traversal and breadth first traversal.
(2) shortest path algorithm (dijkstra, bellman-ford, floyd, heap + dijkstra)
(Poj1860, poj3259, poj1062, poj2253, poj1125, poj2240)
(3) minimum spanning tree algorithm (prim, kruskal)
(Poj1789, poj2485, poj1258, poj3026)
(4) topological sorting (poj1094)
(5) maximum matching of bipartite graphs (Hungary algorithm) (poj3041, poj3020)
(6) augmented path algorithm for the maximum stream (KM algorithm). (poj1459, poj3436)
III. Data structure.
(1) string (poj1035, poj3080, poj1936)
(2) sorting (fast sorting, merge sorting (related to the number of reverse orders), heap sorting) (poj2388, poj2299)
(3) simple and query set applications.
(4) efficient search methods such as Hash table and binary search (number Hash, String Hash)
(Poj3349, poj3274, POJ2151, poj1840, poj2002, poj2503)
(5) Harman tree (poj3253)
(6) heap
(7) trie tree (static and dynamic) (poj2513)
4. Simple search
(1) deep priority search (poj2488, poj3083, poj3009, poj1321, poj2.pdf)
(2) breadth-first search (poj3278, poj1426, poj3126, poj3087.poj3414)
(3) simple search techniques and pruning (poj2531, poj1416, poj2676, 1129)
5. Dynamic planning
(1) backpack problems. (poj1837, poj1276)
(2) simple DP in the following table (refer to page149 in lrj ):
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} (longest common subsequence)
(Poj3176, poj1080, poj1159)
3. C [I, j] = w [I, j] + opt {C [I, k-1] + C [k, j]}. (Optimal binary search tree problem)
6. Mathematics
(1) combined mathematics:
1. Principle of addition and multiplication.
2. Arrange and combine.
3. Recursive relationship.
(POJ3252, poj1850, poj1019, poj1942)
(2) number theory.
1. Prime number and division
2. Hexadecimal digits.
3. Same modulus operation.
(Poj2635, poj3292, poj1845, poj2115)
(3) Calculation method.
1. Knowledge about monotonic functions in the binary method. (poj3273, poj3258, poj1905, poj3122)
VII. Computational geometry.
(1) geometric formula.
(2) use of cross products and dot products (for example, determination of intersection of line segments and distance between points and line segments). (poj2031, poj1039)
(3) simple multi-edge algorithm (area calculation) and correlation determination (whether the multi-edge is in the multi-edge type and whether the multi-edge type is intersection)
(Poj1408, poj1584)
(4) convex hull. (poj2187, poj1113)
Intermediate:
I. Basic algorithms:
(1) Application of C ++ Standard Template Library (poj3096, poj3007)
(2) training of complex simulation questions (poj3393, poj1472, poj3371, poj1027, poj2706)
II. Graph algorithm:
(1) establishment and solution of a differential constraint system (poj1201, poj2983)
(2) maximum minimum fee stream (poj2516, poj2516, poj2195)
(3) connected component (poj2942)
(4) strongly connected branches and their shrinkage points (poj2186)
(5) cut edge and cut point of an image (poj3352)
(6) minimum cut model and Network Flow Protocol (poj3308 ,)
III. Data structure.
(1) line segment tree. (poj2528, poj2828, poj2777, poj2886, poj2750)
(2) static binary search tree (poj2482, poj2352)
(3) tree Group (poj1195, poj3321)
(4) RMQ. (poj3264, poj3368)
(5) advanced applications of the query set. (poj1703, 2492)
(6) KMP algorithm. (poj1961, poj2406)
4. Search
(1) optimal pruning and feasible pruning
(2) search skills and optimization (poj3411, poj1724)
(3) memory-based search (poj3373, poj1691)
5. Dynamic planning
(1) more complex dynamic planning (such as dynamic planning to solve special operator problems)
(Poj1191, poj1054, poj3280, poj2029, poj2948, poj1925, poj3034)
(2) Dynamic planning of record status (POJ3254, poj2411, poj1185)
(3) tree-based Dynamic Planning (poj2057, poj1947, poj2486, poj3140)
6. Mathematics
(1) combined mathematics:
1. Refresh principle.
2. Drawer principle.
3. Group replacement and Polya theorem (poj1286, poj2409, poj3270, poj1026 ).
4. Recurrence relationship and primary function.
(2) mathematics.
1. Gaussian elimination method (poj2947, poj1487, poj2065, poj1166, poj1222)
2. Probability problem. (poj3071, poj3440)
3. GCD, Extended Euclidean (Chinese remainder theorem) (poj3101)
(3) Calculation method.
1.0/1 score planning. (poj2976)
2. The three-way method is used to solve the extreme values of a single peak (single Valley.
3. Matrix method (poj3150, poj3422, poj3070)
4. Iterative approximation (poj3301)
(4) randomization algorithm (poj3318, poj2454)
(5) Miscellaneous questions.
(Poj1870, poj3296, poj3286, poj1095)
VII. Computational geometry.
(1) coordinate discretization.
(2) scanning line algorithm (for example, finding the area and perimeter of a rectangle and using it with a line segment tree or heap ).
(Poj1765, poj1177, poj1151, poj3277, poj2280, poj3004)
(3) polygon kernel (semi-plane intersection) (poj3130, poj3335)
(4) comprehensive application of geometric tools (poj1819, poj1066, poj2043, poj3227, poj2165, poj3429)
Advanced:
I. Basic algorithm requirements:
(1) the code can be quickly written in a concise but elegant style.
(Poj2525, poj1684, poj1421, poj1048, poj2050, poj3306)
(2) ensure correctness and efficiency. poj3434
II. Graph algorithm:
(1) minimum generation tree and Minimum K short circuit. (poj1639)
(2) theory of the maximum short circuit, minimum spanning tree, bipartite graph, and maximum flow problem (mainly modeling and solving)
(Poj3155, poj2112, poj1966, poj3281, poj1087, poj2289, poj3216, poj2446
(3) optimal rate spanning tree (poj2728)
(4) minimum tree structure (poj1_4)
(5) generate small trees.
(6) minimum ring of undirected graph and directed graph
III. Data structure.
(1) trie graph creation and application (poj2778)
(2) the LCA and RMQ problems (the recent common ancestor problems) include offline algorithms (parallel query set + dfs) and online algorithms.
(RMQ + dfs). (poj1330)
(3) dual-end queue and its application (maintaining a monotonous queue, often in the dynamic planning from optimization status transfer
Purpose). (poj2823)
(4) left tree (merged heap ).
(5) suffix tree (a very useful data structure is also a hot topic in the competition area ).
(Poj3415, poj3294)
4. Search
(1) troublesome search question Training (poj1069, poj3322, poj1475, poj1924, poj2049, poj3426)
(2) wide search status optimization: using M-in-number storage status, converting to string hash table weight determination, bit compression storage status, bidirectional wide search, A * algorithm. (poj1768, poj1184, poj1872, poj1324, poj2046, poj1482)
(3) optimization of deep search: Bit operations should be used as much as possible, pruning must be required, as few function parameters as possible, and the number of layers is not too large. You can consider bidirectional search, rotation search, and IDA * algorithms. (poj3131, poj2870, poj2286)
5. Dynamic planning
(1) Dynamic planning that requires data structure optimization.
(Poj2754, poj3378, poj3017)
(2) quadrilateral inequality theory.
(3) difficult status DP (poj3133)
6. Mathematics
(1) combined mathematics.
1. MoBius inversion (poj2888, poj2154)
2. Partial order relationship theory.
(2) forum discussion.
1. Extremely small processes (poj3317, poj1085)
2. Nim problems.
VII. Computational geometry.
(1) semi-plane intersection (poj3384, poj2540)
(2) create a visual image (poj2966)
(3) minimum circular coverage of a point set.
(4) vertex (poj2079)
8. Comprehensive questions.
(Poj3109, poj1478, poj1462, poj2729, poj2048, poj3336, poj3315, poj2148, poj1263)
Classic question set:
1000: it will teach you how to use an online judge.
1001: This question teaches you how to use high-precision computation, and you need to consider the high real number, so you need to record the decimal point location.
1002: simple questions: get a preliminary understanding of the simulation questions in ACM. Simulation questions are questions that do not require any algorithms. They only need to be done step by step according to the requirements of the questions.
1003--1008: simple question, exercise online question preparation environment.
1012: The simplest form of Joseph's question.
1013: simple question.
1017: simple question.
1019: mathematics + simulation
1023: simple question.
1032: simple question.
1045: simple question.
1046: simple question.
1051: simple string simulation questions, recommended for beginners.
1054: troublesome simulation questions, used to familiarize yourself with the language environment.
1060: polynomial simulation questions.
1047: troublesome mathematical simulation.
1050: basic DP.
1061: Extended Euclidean algorithm, classic question.
1067: simple question.
1068: students with time can do this.
1080: simple DP.
1083: simple question.
1088: Classic DP.
1100: Solving the equation, with templates.
1102: simulation questions, very practical code skills.
1106: Getting started with computational Ry.
1132: simple question.
1150: What is the last non-zero digit? From this question, you can learn the general solutions for such problems.
1159: relatively simple DP, can give you a new idea.
1163: relatively simple DP.
1166: a simple simulated question.
1182
1183
1207
1218
1247 1298 1306 1308 1316 1317 1326 1331 1338 1363
1011: deep priority search (DFS) may take a long time. It is worth more training.
Upgrade version at 1029:1013.
1014: greedy question?
1031: Computational Ry
1458: Classic DP.
1401 1423 1426 1450 1455 1477 1488 1503 1504 1517
1035: String + simulation, which is troublesome.
1037: classic dynamic planning (DP) is difficult.
1038: Classic DP, difficult.
1042: Classic greedy question.
1048: more complex simulation questions.
1519 1528 1543 1547 1552 1555 1565 1575 1580 1581
1065: Classic greedy question.
1077: very classic 8 digital problem.
1091: high precision.
1095: Catlan number, difficult to combine mathematical problems.
1099: Typical simulation questions.
1589 1598 1606 1656 1658 1663 1674 1702 1723 1731
1107: simulated string question.
1113: calculates the Ry, convex hull + circle perimeter.
[Concept: convex hull: 1) convex hull of the point set Q refers to a smallest convex polygon that satisfies the points in Q, either on or on the side of the polygon. The polygon represented by a red line segment is the convex hull of the point set Q = {p0, p1,... p12.
2) find the smallest convex polygon that contains all points on a group of points on the plane. This is the problem of convex hull. This can be vividly thought like this: place some unmovable wooden piles on the ground and use a rope to enclose them as tightly as possible. This is a convex bag.]
1141: Classic DP.
1147: requires mathematical skills.
1149: classic network stream.
1753 1775 1799 1844 1851 1862 1915 1922 1936 1953
1165: typical search questions.
1177: Classic line segment tree.
1182: it is difficult to query the set.
1190: classic search + mathematical formula.
1191: a strong mathematical DP.
1969 1979 2000 2001 2007 2013 2017 2027 2039 2070
1201: differential constraint, BELLMAN-FORD algorithm.
1204: it is difficult to solve the typical string automatic machine problem.
1286: the simplest application of the POLYA theorem, composite mathematics.
1312: find a regular question and create a table.
1315: Classic DFS.
POJ question recommendation (reproduced)