Skip to content

Instantly share code, notes, and snippets.

@ramlaxman
Last active July 18, 2021 15:05
Show Gist options
  • Save ramlaxman/3670b6c500436c12f49c3e15a02f8f6e to your computer and use it in GitHub Desktop.
Save ramlaxman/3670b6c500436c12f49c3e15a02f8f6e to your computer and use it in GitHub Desktop.
ACM ICPC Advice

Interesting Discussion as well as Guidance

Some pointers from my side:

ACM ICPC

Concentrate on your Regional: It helps having a fixed goal to focus on. This means acquainting yourself with past years' problems etc. And hopefully, there's a steady or gradual trend in problem style, and its not the case that one year you have amazing problems, the next you have weak test data etc.

Also, difficulty levels vary a lot, and there is little point attempting a Russian Regional (High difficulty, where multiple teams solve many problems still) or a Chinese Regional (where you could potentially be asked a question that asks for a long 400-line implementation) when you are giving a Regional in North America!

Study from sources that have Editorials and Tutorials: Getting stuck? No worries, read the solution. Think "why didn't I get this idea?" and see where all could such approaches (to subparts of the problem) be used. The solution uses something you're seeing for the first time? Read up on it. TopCoder Tutorials are definitely of the highest quality in succinctness and effectiveness.

Look at others' code to pick up tricks: This is extremely useful initially, because it is in the early phases that one is most adaptable and is able to shift or acquire coding style most easily.

Solve a number of problems - for fun (//its funny how I seem to be repeating half of misof's advice here). Concentrate on how to reduce the problem statement to a known algorithm, for the current trend in questions is to give many ad-hoc type questions (again, this depends on your Regional, but at the WF also, there are a lot of ad-hoc problems).

Practice in a Contest Environment: After getting sufficient grounding in math and other topics, and having solved a lot of problems individually, do contests with your team. Fix a bunch of problems to be solved in a 5 hour window, then work on them. After your contest, look up the solutions and code them up the same day. All in all, an 8 hour time investment.

Hunt internet for Competitive Programmers Blog: Become hungry for reading. It will be easy for you to read blogs when you are drinking tea, having snacks or feeling bored. It will give you new views to look at one problem differently.

Do this Daily with a bunch of peers: Try to find some time where you and other teams can do the above point daily. Working like this for a week (like how they haveProgramming camps) can be supremely beneficial and have you transform as a coder. Also, you get to discuss with people outside your team, learn, as well as compete.

Codechef:

  1. https://www.codechef.com/getting-started

  2. https://discuss.codechef.com/questions/53779/type-of-problems-on-codechef

  3. https://www.codechef.com/problemsetting

    Lunchtime

    CookOff

    Long

Codeforces:

  1. http://codeforces.com/problemset?order=BY_SOLVED_DESC

  2. Join DIV 2 problems.

ACM ICPC official website.

https://icpc.baylor.edu/regionals/finder/amp-2019

Keep eye on regionals to get into world finals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment