Source: Training document of Dr. Mao
ACM training syllabus
Changsha University of Science & Technology July 31,201 2
1. Recommended Question Bank
Http://ace.delos.com/usaco/
In the United States, if you are a beginner, you can try to use it first to learn almost all the basic algorithms that are extremely optimized,
You can use Baidu to create a website named nocow.
• Http://livearchive.onlinejudge.org/
There are all the real questions in the competition area, and most of them can be submitted. This is not suitable for the problem library, but it is very convenient to find questions here.
• Http://poj.org/
I don't explain it. The most famous OJ in China has a huge number of questions and a long history. We recommend you review some representative questions.
• Http://acm.timus.ru/
The OJ of Ural University is a good foreign OJ. The questions are very basic and the Administrator will add some new data Rejudge from time to time,
We recommend that you find some questions with moderate numbers.
• Http://acm.sgu.ru/
The OJ of sgu University is a classic topic (not updated for hundreds of years) and is not a special recommendation.
Http://www.spoj.pl
A wonderful OJ has some distinctive submission modes, as well as many famous series of questions, such as qtree. The question quality is very good,
However, the problem is that there are few questions in China. If a newbie just wants to cut water questions, do not go.
Http://acm.hdu.edu.cn
OJ of avionics University highlights the unique topic of Multi-school joint training in China, and there is a version (which looks like the version starting with 20)
It is a great improvement for beginners.
Http://acm.zju.edu.cn
Monthly matches are scheduled every month, and Zhejiang University is very reliable. We recommend that you do one of the monthly matches.
Http://acm.hust.edu.cn
OJ of Huazhong University of Science and Technology is the author of the famous virtual judge of major OJ (generals of the Three Kingdoms and five tigers ).
The function of the competition to be proposed is very useful. You can configure your own questions for simulated competitions.
Http://www.codeforces.com
The famous online competition website has an online competition almost every week, with the participation of experts from all over the world. We strongly recommend that you participate in the competition on time to improve your strength (ke
Server time difference ).
Http://www.topcoder.com/tc
A more famous online competition website, with a long history and rich bonuses, is strongly recommended for single
Round Match greatly improves IQ.
2. algorithm summary and recommendation questions
2.1 C ++ STL
• STL container: Set, MAP, vector, priority_queue, queue, stack, deque, bitset
• STL algorithms: sort, unique, nth_element, reverse, rotate, next_permution, find, for_each, Count, lower_bound,
Max, swap, random_shuffle
2.2 Basic Algorithms
• Enumeration: poj1753, poj2965, zoj1716, zoj3356, ural1010
• Greedy: poj1328, poj2109, poj2586, ural1303, sgu195, sgu171
• Recursion and Governance: ural1181, poj1579, poj1845, and poj3714
• Construction: poj3922, poj1092, and sgu121
• Simulation: poj3125, poj1068, poj2993, ural1007
• Sorting: ural1082, poj2092, and poj1694
• KMP algorithm: poj2406
• Extended KMP: poj3376 and poj1699
• Dichotomy: poj1905, poj2002
• Trigger: hdu3400 and hdu2298
• Matrix multiplication: zoj2105, zoj3289
• Discretization: ural1019, sgu177
• Fast Fourier Transformation: poj2821
• Minimum ring String Representation: poj1509
2.3 Graph Theory
• Depth-first traversal: poj2488
• Width-first traversal: poj3620, poj2.pdf
• Shortest Path: poj1847 and poj1062
• Minimal spanning tree: zoj1914
• Topological sorting: zoj2193 and zoj1060
• Maximum matching of bipartite graphs: poj1469
• Maximum Weight Matching of a bipartite graph: ural1076
• Stable marriage: poj3487
• Maximum stream and minimum cut: poj1459
• Maximum stream with lower bound: poj2396
• Maximum Minimum fee: poj2159
• Differential constraint system: poj1275
• Dual-connectivity component: zoj2588
• Strongly connected components: zoj2470 and poj2186
• Cut edge and cut point: poj3352, poj3177
• Degree limit Spanning Tree: poj1638 and hdu3070
• K short circuit: poj2449, sgu145
• Recent public ancestor: poj1330
• Optimal Ratio Spanning Tree: poj2728
• Secondary Generation tree: poj1679
• Minimum tree structure: poj1_4
• Euler's circuit and Path: poj1386 and poj2337
• Hamilton loop: sgu122
• Traveling Salesman Problem: poj2288
• Extremely large group search: poj2989
• Determination and application of the string chart: zoj1015
• Maximum matching of any image: ural1099
2.4 Data Structure
• Stack and queue: poj2559
• Query set: poj1611 and poj1182
• Hash table: poj1840 and poj1186
• Priority queue: poj1862 and poj3253
• Merged heap: zoj2334
• Letter tree and AC automatic mechanism: zoj3430, zoj3228
• Line Segment tree: zoj3317 and zoj1610
• Tree array: poj2299 and poj2352
• Multiplication table (rmq): poj3368, poj2452
• Balanced binary tree: poj2892, poj2418, and poj3580
• Suffix array: poj2774 and poj3294
• KD tree: spoj2835, poj2528
• Tree link Splitting: poj3237, spoj2666, and spoj2798
• Tree grouping algorithms: poj2114 and poj1987
• Dynamic Tree: hdu2475, hdu3601, hdu4010
2.5 search
• Simple tips and pruning: poj1033 and poj3009
• Optimization and feasibility pruning: poj1011 and poj1190
• Memory search: poj1191 and poj1088
• Iteration deepening: poj2286 and poj2032
• A Search: hdu2467, poj1077
• Dancing link: poj3074, hdu4069
• Half-fold search: zoj3631
• Bidirectional search: poj1198 and poj1915
2.6 Dynamic Planning
• Resource Allocation Problems: poj3624 and poj2063
• Interval Division: poj3280
• Status compression problem: poj1185
• Tree-like DP: poj1463 and poj3345
• Data Structure Optimization DP: poj2374 and poj2355
• Quadrilateral inequality: poj1160
• Queue optimization: zoj3399
• The status indicated by the plug is compressed DP: poj1739
• State compression DP in minimum Notation: spoj2159
• Digital DP: hdu3555, sgu258, and sgu390
2.7 mathematics
• Permutation and combination: poj1850 and poj3252
• Lucas theorem: poj3219
• Prime number testing and screening: poj2191 and poj1811
• Fast Algorithm for big data decomposition: poj1142
• Carry: poj2798 and poj1702
• Same-modulus operation: poj1006 and poj2115
• Refresh principle: poj3904 and poj1173
• Replacement group and Burnside theorem: poj2888
• Recurrence relationship and primary function: poj3734
• Gaussian deyuan: poj1681, poj1222
• Probability and statistics: poj2151 and poj1021
• Extended Euclidean algorithms: poj2891 and poj1061
• China Remainder Theorem: poj1006 and zoj3538
• Discrete logarithm and discrete root: sgu261
• Laplace interpolation: uva4209
• Iteration approximation: poj2868 and poj3933
• Mobius Inversion: poj2154
• Game theory and SG functions: poj2960 and poj2311
• Order Theory and lattice: poj1065 and poj3636
2.8 computational ry
• Dot product and cross product: zoj1010
• Intersection of line segments: zoj1648
• Area of a simple polygon: poj1654
• The nearest longest distance from a point to a line segment: ural1348
• Convex hull: poj1113
• Tracking point: poj2187
• Tangent of the circle and point: poj1375
• Intersection of circles and straight lines: poj1263
• Intersection of circles: poj2564
• Sum and intersection of circles and polygon: poj3675
• Point in the polygon: poj2398
• Semi-plane intersection: poj1474 and poj2540
• Minimum circular coverage: zoj1450 and spoj145
• 3D convex hull: poj3528
• Representation of 3D points and straight lines: poj3129
• Linear Programming: poj1755
3. recommended books
• Introduction to Algorithms
The famous algorithm book covers all the basic algorithms, which are far more detailed than imagined and have been expanded to varying degrees.
I have benefited a lot from doing the above exercises.
• Competition in algorithm art and Informatics
The famous title of lrj, also known as the black book, is very open-minded and recommended for reading and mastering. In addition, lrj has recently published a white book. I have not read it yet,
I have heard that this is more basic. If you are interested, you can read it.
• Concrete mathematics
One of the essential books in the computer science field, which covers almost all the mathematical knowledge used in computer science. If you are interested, we recommend that you read them in depth.
Read more professional books (composite mathematics, elementary number theory, discrete mathematics, linear algebra, and so on ).
• How to solve it
This book, which is basically different from the above, describes how to solve the problem and helps you better model abstract problems in mathematics.
The competition is helpful for the whole way of thinking.
• Computational Geometry Algorithms and Applications
A fairly detailed book on Computational ry, computational ry is often the most basic skill in a competition and does not require complexity of thinking,
It is quite advantageous to practice computational ry.
• C ++ program design ideas and methods
If you are not familiar with the c ++ language features, I suggest you read a good book about C ++ language.
Java has great advantages in writing big simulation questions and high-precision questions.
• All Noi national training team assignments and papers
You can find all the information on the Internet. Good materials are obtained by the top experts of the past years by sorting out the most advanced knowledge at that time, including a lot of questions.
.