Acm
This article is contributed by Swellspirit
Acm
• I can accept failure. But I can ' t accept not trying. Life was often compared to a marathon, but I think it was more like being a sprinter; Long stretches of hard work punctuated by brief moments in which we is given the opportunity to perform at our best. If someone gets the best of me, I try not to let that happen again. (Jordan)
• "Participate" and "not participate" two issues:
– First: Can I win? – Second: Put aside the honor, what did you learn from the game that I spent so much time?
• Answer: Ref: Rujia • The first question is more complex, by personal grasp • The answer to the second question is yes, but the premise is to broaden your horizons and not confine yourself to a confined space. As we all know, the ACM-ICPC competition requires the player to have a certain degree of theoretical knowledge and practical ability, but also in the programming of speed and correctness, but I think the important point is that acm-icpc able to shoot like players practical ability and insight, which is more difficult to develop relative theory and technology.
• Often, competition topics have a uniform look and a strong application background, rather than specifically designed for competitions, so there are opposing systems and corresponding documents. programming language, data structure, algorithm design methods, computational theory and other content are classical computer Science branch, and advanced data, number theory, combinatorial mathematics, probability theory, graph theory, combinatorial game theory, artificial intelligence, computational geometry, computer graphics, bioinformatics and other content is also common in various competitions, Although the topic covers only a small part of the disciplines, understanding and practice of the knowledge will help to understand the subject more comprehensively and in depth. The study of any knowledge can not be separated from three aspects: Theory, model and realization.
• The theoretical part is relatively easy to grasp, but requires meticulous learning, good at summing up, grasp the essence, the main training of the player's insight. Model parts are more flexible, creative and enlightening, whether it is the establishment of the model or the solution, need a lot of accumulation and thinking, mainly to train the player's creativity. The realization of some relatively free, but also the embodiment of personal style, it is difficult to have a fixed standard, but there are many thousand people experience and model can be referenced, mainly to train the player's correctness and efficiency.
• For players, ACM-ICPC is only a small part of life, but people can make this experience important and valuable, ready to acm-icpc the day is a period of anesthesia, is also the most passionate, happiest, usually in such a period, with like-minded person to establish the friendship is the most valuable.
• 1, ACM (1-2 grade) • 2, Project (3 grade) • 4, work (Google or Microsoft or Baidu or QQ or IBM) • Data structure + algorithm = program • Computer Application technology or software engineering major
Learning methods
• 1, reading data structure algorithm Math 2, do the title PKU, Zju, forum, problem solving report 3, combined
3. How to cultivate a beginner
• Recommended two websites
–ace.delos.com/usacogate (Usaco)
Basic Skills Training algorithm explained,
Training each problem to make after the explanation, code mode beginner recommended Chapter1-4,chapter5-6 Challenge strong algorithm Competition-single Round Match (SRM) One months about 4 times, there are rating two version (Div I, div II) A large number of participants after each match have a detailed problem solving report, code after the end of the game practice rooms can continue to do can see each person's code forum very lively, foreigners very helpful has $ oh, rooms before three
–www.topcoder.com/tc
• Domestic Test Bank
–http://acm.pku.edu.cn–http://acm.zju.edu.cn–http://acm.tju.edu.cn–http://acm.hit.edu.cn–http://acm.whu.edu.cn Wuhan University, Tianjin University, Zhejiang University, Beijing
• Foreign bank
–http://acm.timus.ru Math Problems More, OI players will do –http://acm.uva.es foreign biggest question bank, a lot of people, Forum is also very lively –http://acm.sgu.ru problem more difficult
• Recommended
– Do a quantitative problem-laying the groundwork – for a specific classic algorithm, do the corresponding topic exercises – The number of questions is not important and the ranking of the number of questions does not matter.
• Reference Books
– Introduction to algorithmic English version
• Entry-level readings
– First reading, the mathematical part of the front to establish the basic concepts can be, no need to drill down-the correctness of the algorithm, complexity analysis must be solid grasp (master theorem to be used, amortization also analyzed) – Data structure part of the understanding is the key, some overly complex data structures for beginners do not necessarily require implementation ( Red-black tree, two-item heap, Fibbonacci heap), but the basic data structure must be proficient, to be able to be proficient in the implementation of-graph theory classical algorithm to master – dynamic planning to master – the high-level part is only selected to learn some
• Reference Books
– Algorithmic Art and Informatics competition Rujia, Huang Liang
• Difficult for students with a certain foundation • First and third chapters are still recommended for beginners
BBS
–acm.pku.edu.cn Web Board (now potch, preferably only as a channel to learn about new information and discussion topics) – The algorithmic version of the BBS (category discussion area, computer technology->algorithm (or ACM, ICPC) The essence area often has a lot of information and guides
• Recommended
––––––––bbs.whu.edu.cn (Wuhan University) bbs.zsu.edu.cn (Zhongshan) bbs.freecity.cn (Zhejiang University) bbs.sjtu.edu.cn (handed in) bbs.hit.edu.cn (hit) bbs.tju. edu.cn (Tianda) bbs.nju.edu.cn (Nan da) bbs.scu.edu.cn (Sichuan)
•
Generally to do 50 lines within the program without debugging, 100 lines within two minutes of debugging success. ACM is mainly the test algorithm, the main time is spent on the thinking algorithm, not spend on writing program and Debug. Here is a plan for you to practice: The first stage: the practice of classical algorithms, each of the following algorithms for me to play 10 to 20 times, at the same time, their own thin code, because too common, so to practice to write without thinking, 10-15 minutes to finish, or even turn off the display can be the program. 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 precision) 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 Jane) 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
ACM Practice recommends turning
• Stage Two: Practice a bit more complex, but also more commonly used algorithms. such as: 1. Binary graph matching (Hungary), with a minimum path of 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 algorithm. 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.
• Stage three: 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:-)
The rules of our game
• Special Lectures
– Topic type data structure search dynamic programming diagram theory Mathematics
• Demo Race + Tryouts • Our schedule
You can Shine
ACM Starter Program