I do not know which Daniel wrote, confused reference it!
Participate in the ACM competition generally to achieve 50 lines within the program without debugging, 100 lines within two minutes of the successful commissioning. ACM is mainly the algorithm, the main time is spent on thinking algorithms, not spend on writing programs and debug.
First stage:
Practice classic commonly used algorithms, each of the following algorithms give me 10 to 20 times, while their own thin code, because too common, so to practice to write without thinking, 10-15 minutes to finish, or even turn off the monitor can be the program to play
Come out.
1. Shortest Way (Floyd, Dijstra,bellmanford)
2. Minimum spanning tree (first write a prim, kruscal to use and check set, not write)
3. Large number (high accuracy) subtraction
4. Two points to find. (code can be within five elements)
5. Cross-multiply, sentence line intersection, and then write a convex bag.
6.BFS, DFS, while proficient hash table (to be ripe, to be flexible, code to simplify)
7. Mathematically, there are: the Division of the Division (two lines), the intersection of segments, the multi-angular area formula.
8. Call the system qsort, a lot of tricks, slowly mastered.
9. Conversion between any binary
Phase II:
Practice a bit more complex, but also more commonly used algorithms.
Such as:
1. Two graph matching (Hungary), Minimum path overlay
2. Network flow, minimum cost flow.
3. Segment tree.
4. And check the set.
5. Familiar with the various models of dynamic programming: LCS, maximum increment substring, triangulation, memory DP
6. Game-like algorithms. Game tree, binary method and so on.
7. Maximum group, maximum independent set.
8. Determine the point within the polygon.
9. Differential constraint system.
10. Bidirectional breadth Search, a * algorithm, minimum dissipation priority.
Phase III:
The first two stages are the foundation, the third stage is the exercise in the game can quickly build models, think of new algorithms. This will usually do more comprehensive questions.
1. Take a look at the paper on the Oibh (about hundreds of articles, I only see a little, hehe).
2. Usually sweep the Zoj on the problem, do not always do those who do not think of the problem. (The Moderator of the big ACM often said I picked simple to
Do:-P)
3. Participate in online competitions, feel the atmosphere of the game and evaluate your own strength.
4. Don't cross a question. Even if, ask a person, have a better algorithm also dozen.
5. Remember the questions you have done:-)
Essential basic Algorithms for learning ACM