Hello all,
I’ve been practicing at Codechef for a while and now I’m gradually moving toward medium/hard problems. However many algorithms at these levels are very difficult to predict, and I was always stuck because I’m not aware of them. So I open this topic, my hope is to have a wish-list of most used algorithm for online programming contest that I can look up for reference. Here is my short-list up to now:
Edit: It would be a nice idea to group these algorithms. For example, KMP algortihm, Aho-Corasick algorithm, Rabin-Karp algorithm all fall under the category of String Match, and hence should be put under the category of string match algorithms; and so on for other algorithms as well.
Grouping would help newbies like me to explore a particular group and learn all the algorithms in that.
Sadly, this list is endless and the hardest part is to understand which of these topics need to be applied to solve a given problem.
As a bonus, you can have variations of these standard topics which may require mixing some of these concepts.
I will edit the above post with all these suggestions, except some of the suggestions given by @n2n_, since putting on the same bag, FFT and Sieve of Eratosthenes for finding primes, seems a bit overkill to me, as the second one is a basic algorithm and not needed to advanced problems I would say
It will be great if we can build on this to give links of useful resources against each algorithm and also mention problems which require these algorithms to be solved.
Should we make this as a community wiki and people can keep adding and editing it there? The down side is that the votes that you have gathers will be lost. Or we can create another community wiki with the contents of this thread and the community can edit it there. What say?
A very useful link ,list in-dept analysis of basic to advanced algorithm ,many which are listed above ,very helpful read http://e-maxx.ru/algo/ though in russian but google translator might help.
Is the idea of linking all of the above topics to some resource with a tutorial and suggested problems still up?
Because if it is, I can try to write about the topic 3. Fast Modulo Multiplication (Exponential Squaring), as it is a topic I master relatively well, and, when I’m finished with my tutorial I can provide the link here
@admin: Although many of the things listed above are covered in society like Topcoder, codeforce as well there are content available at the internet too. The more detail list is available at (http://www.codechef.com/getting-started -> List of Topics for programming Competitions). Again if the things are missing and we have better solutions, we can write it under the tutorial section in codechef.
I have added link to my tutorial about point 3 on the original post… If you find it good enough feel free to add it to codechef for schools page as well! It would be an honor
I’m bringing this back up to let you all know that I will use my own problem, MARBLESGF to write a tutorial on BIT/Fenwick Trees I will post it when its complete and also provide link here