If you want to enter an algorithm contest, the sooner the better. Freshman year or earlier you need to prepare. If you are already graduating, there is no need to prepare, and it is good to participate in some buckle competitions as a hobby.

The question bank

Algorithmic interview is more and more difficult than algorithmic interview. Like digit DP, multiplication, multiplicative inverse. And these things don’t show up much in algorithmic interviews.

There are many OJ websites in question bank. But there are too many questions.

I recommend two sites, one for competition and one for ordinary job seekers.

CSES is a website suitable for competitors. It has 300 questions and it is faster to finish them (compared to other old OJ platforms). The address is CSES

The other one is BinarySearch. User experience is well done. The difficulty of the topic is similar to that of the force button. The difficulty fluctuation feels a little smaller than the force button

Try the game

Let’s start with three platforms.

One of them is CodeForces, which is known by more people. Codeforces is the platform with the largest number of people participating in each competition worldwide. The average person might not know. This site is a bit more difficult and of higher quality. Anyone who has.

The second is Leetcode. You may have heard of this. At present, there are two events.

  • Weekly games: Every Sunday at 10:30 am
  • Biweekly tournament: every two weeks, Saturday 10:30 PM Beijing time

The difficulty of force buckle is more entry-level, suitable for beginners. However, the difficulty fluctuation is not small, the low difficulty is from time to time is the hand speed field, if the difficulty is high, as long as it can do (even the card point to do) can be top 100.

The final recommendation is the Google contest, which has three levels.

  • Google interviews are held eight times a year.
  • Code Jam: Google’s flagship event, and the most important event, is divided into qualifying rounds, A, B, C, and finals. There are 25 places in the finals each year.
  • Hash Code: A team competition that, unlike a regular programming competition, consists of optimization problems without an optimal answer. There are two rounds of qualification and final.

Learning website

The OI Wiki is a comprehensive, in-depth site that covers the games. The contents of the inside probably looked, most good, a small part is copied from the Internet, the quality is also general. If you have some discernment skills, this site is very good. Address: oi-wiki.org/

For example, the graph theory oi-wiki directory looks like this:

Cp-wiki is a summary of personal Competitive Programming learning materials. There is not only a summary of each knowledge point.

Summary of knowledge is the nature of the outline, relatively brief, suitable for use to fill gaps.

There are also solutions for each competition, which is strongly recommended for your collection of learning competitions.

Learning books

Advanced Guide to Algorithm Competition

I recommend reading Lee’s Advanced Algorithm Contest Guide. He has extensive experience in competitions and training competitions and is also an engineer at Google.

Lee has taught for NOI series competition, NOI guide training base and many schools around the country, and organized dozens of simulation games on the network, rich experience, thorough explanation, widely praised. I assisted shijiazhuang No. 2 Middle School for many times in the training of informatics competition, and participated in the teaching and test setting of “Data Structure and Algorithm” and “Algorithm Design and Analysis” in Peking University.

Douban score 9.1, the eyes of the masses or snow bright!

This kind of book is very popular in algorithm competitions. You’ve probably heard of it if you’re preparing for an algorithmic interview. If you haven’t heard of it, buy it now.

I enclose a list of such books:

0x00 Basic algorithm 0x01 Bit Operations 0x02 Enumeration, Simulation, Recursion 0x03 Recursion 0x04 Dicomial 0x05 Sort 0x06 multiply 0x07 Greedy 0x08 Summary and Exercise 0x10 Basic data structure 0x11 stack 0x12 queue 0x13 Linked list and Adjacency list 0x14 Hash 0x15 String 0x16 Trie 0x17 Binary heap 0x18 Summary and Exercise 0x20 Search 0x21 Traversal of trees and graphs 0x22 Depth-first search 0x23 Pruning 0x24 Iteration Deepen 0x25 Breadth first search 0x27 A* 0x28 IDA* 0x29 Summary and Practice 0x30 Mathematical knowledge 0x31 primes 0x32 Divisor 0x33 Congruent 0x34 Matrix multiplication 0x35 Gaussian elimination and linear space 0x36 combination count 0x37 Principle of inclusion and Exclusion and Mobius function 0x38 Probability and Mathematical expectation 0x39 0/1 Fractional Planning 0x3A Game Theory SG function 0x3B Summary and Exercise 0x40 Data structure advanced 0x41 and look up set 0x42 tree array 0x43 line segment tree 0x44 block 0x45 Point divide and rule 0x46 Binary Search tree and Balance Tree 0x47 Preliminary summary and Exercise 0x50 Dynamic Programming 0x51 Linear DP 0x52 Backpack 0x53 Interval DP 0x54 Tree DP 0x55 Ring and aftereffect processing 0x56 State compression DP 0x57 multiply Optimization DP 0x58 Data structure optimization DP 0x59 Monotone Queue optimization DP 0x5A Slope Optimization 0x5B Quadrangle Inequality 0x5C Counting Class DP 0x5D Digital Statistics DP 0x5E Summary and Exercise 0x60 Graph theory 0x61 Least Short circuit 0x62 Minimum Spanning Tree 0x63 Tree diameter and nearest common ancestor 0x64 Base Ring tree 0x65 Negative Ring and Difference constraint 0x66 Tarjan Algorithm and Undirected Graph Connectivity 0x67 Tarjan Algorithm and Directed Graph Connectivity 0x68 Matching of binary graph 0x69 Coverage and independent set of binary graph 0x6A Network flow preliminary 0x6B Summary and exercises 0x70 comprehensive tips and practices 0x71 C++ STL 0x72 random data generation and beat 0x7F appendixCopy the code

If you’re not going to enter an algorithm contest, I suggest you check it out, but you can choose the content. If you don’t know which part to read, you can have a discussion in my communication group, the public id likoujiajia reply leetcode into the group.

Guide to Competitive Programming

Guide to Competitive Programming is a book I haven’t read myself. Listen to a friend to say content is good nevertheless, everybody can try to read, see directory whether suit oneself.

BTW, the aforementioned question bank website CSES also recommended this book.

conclusion

If you want to participate in the algorithm contest as early as possible, it is recommended to start at least freshman year.

I suggest you sell a book to study systematically, and then find a question bank to follow the brush. Finish the test bank and then participate in the competition. After the competition is finished, you can look at everyone’s solutions, whether you have done it or not, and see if other people’s solutions are better. After such a complete route, I believe during the university to get a ranking, into a big company or no problem. Enter big company of course even other respect is not bad also just go 😄