What are the "must known" algorithms for online programming contests?

Tutorial on disjoint set and union find with supporting heuristics.
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=disjointDataStructure

2 Likes

Levenshtein distance algorithm

1 Like

> Catalan numbers

Why?

This is not an algorithm. The way they can describe a lot of stuff is nice, but I’ve never ever seen them used in a solution in competitive programming (unless you count “bruteforce the first few numbers and google them in OEIS” an algorithm, which I don’t).

Similarly, anything that contains “ad-hoc” is not an algorithm, practically by definition. “Ad-hoc” means something that doesn’t fall under a well-known algorithmic technique.

1 Like

Being a beginner and a little weak at Data Structures particularly from where should I start to get a good grip eventually?

There is an “awesome” resource for this and a lot other things. https://github.com/sindresorhus/awesome
Though I don’t remember the original author’s name, this is the best I’ve come across. Be sure to check it out.

sieve of eratosthenes and segmented sieve

You can also add data structures as DS + Algo’s = Programs. I suggest adding a few basic data structures which would help. Also you could add topics like DP.

Centroid Decomposition of Tree

Can anyone also mention the approaches that we have to know like Dynamic Programming or any other approaches for programming contests.
Classifying these algorithms based on the approach will also really be beneficial, may be i am asking for more here :).

“Sorry You don’t have enough reputation to upvote” How to get reputations :’( ??

Hey guys have a look at this blog ::::
Important Data Structures and Algorithms

Google “Codechefs new karma system” and go through the list.

Awesome compilation of all stuff in one place, appreciate everyone’s hardwork :slight_smile:

You can refer to this link.

you can refer this link

nice work. really helpful ^-^

nice work. really helpful ^-^