Hi everyone. Over the past couple of years I've been collecting problems, articles, and competitive programming resources that I find interesting. It's already grown to dozens of sheets in multiple Google Sheet documents, and is a pretty bad mess. As an effort to organize this list and make it public, I decided to turn it into an online wiki dedicated to competitive programming: AlgoWiki.
The url is wiki.algo.is, so it should be easy to remember.
I'm far from done migrating stuff into the wiki, but I think there's already quite a bit of useful information in there. I tried to prioritize algorithms/data structures/techniques that are less known, and then listed problems and articles that I thought were especially useful for learning/practicing the given topic. In some cases I've additionally extracted/written content about the given topic, with notes that point out common pitfalls or help give a better intuition for the topic.
To give you an example, consider the Minkowski sum page, a topic that I think is pretty neat, but has yet to become "mainstream" among competitive programmers (as far as I can tell). Here I've extracted relevant sections from Wikipedia, listed problems that can be solved using Minkowski sums, linked to comments/editorials that might give some hints for each problem, and given some links about Minkowski sums that I thought were useful. Ideally I would like to rewrite the text with competitive programming in mind, but the Wikipedia sections serve as filler content for now.
Now, while I hope you enjoy what I have gathered so far as well as what may be added in the future, I would also like to invite you to contribute whichever neat algorithms/data structures/techniques/problems/articles you may encounter, so that others may also benefit. This is a wiki after all... Currently there are two ways to contribute:
- by creating an account on AlgoWiki and editing pages through the web interface (as is common on online wikis), or
- by forking AlgoWiki on Github, where all the wiki source files are stored.
My goal is to keep the wiki as open as possible, while also keeping the quality of the content high. If you want to help me moderate contributions, feel free to get in touch.
I also have another related project in the works, which is at an even earlier stage of development. The motivation for that project is that great problem sets, articles, and other competitive programming resources, especially older ones, are slowly disappearing from the internet. Another case in point: the link to the third problem on the Minkowski sum page linked to above is already dead. As a digital data hoarder with much respect for the effort that went into developing these resources, that makes me very sad. To battle that, I would like to create an archive/mirror of competitive programming resources.
I already have something very primitive up and running at archive.algo.is, with some content that I've scraped online. As this is very early stage (and this applies to the wiki as well), I have not yet gone through licenses/contacted rights owners, so if there is anything there that I may not be allowed to redistribute, please let me know.
I also have a lot of other material, both digital (e.g. training camp material) and on paper (e.g. "vintage" problem sets from CMU around 2000), that I would love to make available online, given an approval from the respective sources.
The ultimate goal would then be a vast, yet well organized collection of problem sets (with test data), and other kinds of competitive programming resources, reliably mirrored over several machines on the internet. In particular, this could then be used by the wiki without fear that the links eventually die.
If you would like to help me get this started, or have any material you can contribute to this, please, also get in touch.