ACM Live Archive,
has many problems from past ACM/ICPC ACM regional contests and world finals. This is essentially the only online judge that features recent ACM World Finals problems. There is a lot of problems, and the site now uses the same backend as the UVA online judge, so the long time issue of having no Java support and C++ being compiled without optimizations is finally history!!
Arbiter, online judge at Sharif University in Iran.
COCI, The Croating Open Competition In
Informatics. Around 8 contests have been held yearly from 2006- with IOI-style
grading. The problems are generally of a very good quality. Tasks and test data
can be downloaded from the link.
CodeChef, an ICPC-style online judge
(uses SPOJ for the backend, i.e. judging solutions). It is fairly new (started
around March 2009), and only has a few hundred practice problems. They have
monthly competitions (one longer contest lasting for a couple of weeks and a
shorter contest of a few hours duration) with prizes (t-shirts and cash
prizes). The problems in the monthly contests are usually of a very high
quality.The site looks very good and is nicely designed.
CodeForces, a Web 2.0 social website
about programming contests. So far there is a weekly 2-hour contest with
ACM/ICPC style problems. Users have their own blogs, and the main page shows
blogs entries of several users. Also there is a rating system based on the
contest performance. The aim is to have everything available in Russian and
English.
Fudge (the social programming network), an online judge with focus on the social aspects of programming, has ACM-style problems.
FZU Online Judge,
about 500 problems.
Google Code Jam, here you can practise on problems from previous competitions. They allow you to code in whichever language you want, which is really nice. The interface is excellent compared to most similar sites.
Harbin Online Judge
Hangzhou Dianzi University (HDU) Online Judge, has virtual contest features and quite a lot of problems.
Hunan University ACM/ICPC Online Judge, seems to have a lot of problems from regional contests. Unfortunately a lot of the material is in Chinese.
IPSC (Internet Problem Solving Contest), an annually conducted programming contest that usually features a number of standard problems but also a large number of original and unusual problems. Has been conducted annually since 1999, so there is a large number of problems to check out.
KSRU Online Judge, an online judge with relations to the NEERC regional, and the Kyrgyzstan Subregional. Some of the material is in Russian. They do not have so many problems, but they seem to be of good quality.
Jilin Online Judge
Light Online Judge, over 300 problems,
most are of good quality. The problems are categorized, and the site has its own
compiler, chat room, articles etc. Users can arrange their own contests with
their own problems. They can also view submitted codes of other users for
problems that he/she has already got accepted. The online judge is more of an
educational site and is really good for new problem solvers.
Lviv Online Judge, over 100 problems and
expanding. Unfortunately it is only in Ukrainian.
Moscow Online Judge,
few problems, but all of are of a high quality.
National Taiwan University (NTU) Online Judge, reasonably sized problem set. The site seems very responsive and nicely designed. A neat feature is that users can tag with categories, and there is a list of tags. So it's possible to practice specific areas using this feature.
Online Problems Solving System (OPSS), Polish online judge.
Peking University Online Judge,
more than 2220 problems.
Programming Challenges,
a judge that contains all the problems in the book of the same title
(by Steven Skiena). The problems are a selected subset of the problems
from the UVA judge.
Project Euler, Project Euler consists of a series of challenging mathematical problems often based on number theoretic concepts. You don't actually submit code to this site to solve a problem - just the answer to a single test case.
Saratov Online Judge,
over 200 problems, most problems are also rather challenging.
Sphere Online Judge, this judge supports over
25 different programming languages. It excels in this area. They have over 3000
problems, most of which are of a high quality. A large number of people use
this online judge for training. Users are allowed to add problems (if they
become problem setters). Furthermore, they also have contests sometimes.
Problems are partitioned into four types: tutorial, classical, challenge and
partial. Problems in the partial category are from IOI-related contests and
uses IOI-style grading. The other types have ACM-style grading.
TJU Online Judge,
over 3000 problems. Most are from old regionals or similar. A cool feature on
their judge is the ability to have virtual contests, and since they have a lot of old regionals, this is a very useful feature for team practice for upcoming ACM/ICPC contests.
TopCoder,
TopCoder is not actually an online judge. TopCoder is an organization
that arranges programming contests. They have their own arena
with practice rooms and a lot of problems
from previous SRM's (single round matches). Moreover TopCoder arranges matches
almost weekly, often with prizes to the best scoring contestants.
Many people practice at TopCoder, and it is also highly encouraged.
Timues Online Judge,
over 500 problems, in general most problems are quite difficult.
USACO Training Program Gateway,
this site is intended for high school students, but is in fact
used by many others. They have a nice training program with tutorials,
and reference solutions that you can see once you have solved a problem.
Their training program is highly recommended.
UVa Online Judge,
more than 2400 problems available. All problems on this site are from this judge.
Wuhan University Online Judge, around 400 problems, supports C++, C, Pascal and Java.
ZJU Online Judge,
over 1800 problems. Note that this judge supports only C and C++.
Z-Trening, supports C, C++ and Pascal, has IOI-style grading.
ACM ICPC Problem Set Archive, contains a number of problem sets from (pre-2002) ACM ICPC regionals including test data and sample solutions.
ACM Server, using this software you can arrange your own contests using problems from a lot of online judges. For instance you can pick a number of problems from UVA and then hold a contest using these problems. The source code is also available.
Algorithmist,
here you can find explanations of many problems and also classifications.
There are also nice tutorials about different subjects. Also they have a
calendar of different programming contests. You should really check this page
out!
Felix Halim - Hunting UVA problems,
Felix Halim has a great site where you can Hunt UVA problems. One great
feature is that you can view "the next 20 easiest problems for you". This is
of an immense aid in helping you find problems that you are able to solve. You
can also find a graph that shows your problem solving progress. He also keeps
ranklists for all countries in the world. All in all his site is greatly
recommended.
GMU ACM ICPC Code Repository, solutions for different problems on the UVa online judge, ACM/ICPC regionals, and also explanations of various techniques such as dynamic programming.
Steven Halim - World of Seven,
at this site you can find hints for many of the problems. There are also some nice tutorials
that will help you learn new algorithms and problem solving skills. It is also a
good site to visit if you are stuck on a problem and need a hint. He has hints for
around 530 problems from the UVA judge.
Igor Naverniouk's site,
Igor has a lot of experience in solving problems at the UVA judge. At his site
you can see how he has has classified his solved problems, and in some
cases you can also get hints. His problem classification list is often very
useful. His library of algorithms (in C++) is very useful, and is definitely
worth a look.
Waterloo Programming Contests,
this is the local page for contests held at the University of Waterloo in Canada. Here you
will find a lot of great problems (most of them are also on the UVA judge), including solutions,
input and output. Most solutions are of a very high quality. If you are stuck on one of their
problems, it may be a good idea to take a look here.
Mesmay's ACM-ICPC Resources page,
here you can find hints for many of the problems of Volume I at the UVA judge.
You can also find extra input and output for these problems. Furthermore there
is a section concerning many of the standard algorithms. This site is mainly
useful if you are stuck on one of the problems of Volume I at UVA
SPOJ comparer, by otinn, shows which problems from the classical problem set that one user has solved, while the other has not.
Problem Classifier, problem classification by pt1989.
otinn.com,
has myriads of different statistics from TopCoder competitions such as "country
statistics", and various interesting features such as "TopCoder duel". If you
are bored, there is always something to look at there.
Topcoder :: Algorithm Matches Summary,
this is a very cool site where you can see summaries of all matches. It also
has a chat facility and it mimicks the TopCoder Arena interface.
Division summary,
same as above but with a different interface.
Algorithm rating graph comparison,
can be used to compare algorithm rating graphs of any number of competitors.
Random Coder Stats,
shows random but still very interesting statistics about a coder
TC Utilities,
here you can calculate predicted ratings, expected value of prizes and various
other things.
aussie's TopCoder Site, various statistics over TopCoder Matches and odds for TCO 2009.
On this page you will find a listing of material which you might consider studying in order to improve your problem solving skills.
The Hitchiker's Guide to Programming Contests. This is a very nice document about many of the techniques and algorithms needed to solve problems at online judges. The document is not for beginners, but it is still worth a read. It is one of the best documents I have ever read about solving problems at online judges. Furthermore there are a lot of nice implementations of various algorithms and data structures in C++. Their computational geometry library is quite good and so is their maximum cardinality bipartite matching algorithm. The document covers dynamic programming, many areas of graph theory, matrices, number theory, computational geometry and more.
Art of Programming Contest by Ahmed Shamsul Arefin. This is an online book about problem solving at online judges. The book covers a lot of the standard algorithms and data structures needed for problem solving. It is definitely worth a read for beginners and semi-experienced problem solvers. Unfortunately the book is full of minor errors.
Algorithmic Problem Solving by Professor Roland Backhouse of Nottingham University. In this note a lot of useful material is covered such as invariants, combinatorial games, induction and logic. The note is used in this course taught by the author. The material is very useful for programming contests and problem solving as it takes a very algorithmic slant towards problem solving, which is a perspective that is often missing from other texts.
Introduction to algorithms by Cormen, Leiserson, Rivest and Stein (usually just called CLRS). This is a widely used book about algorithms and data structures. It is quite rigorous and covers many important areas about algorithms that are definitely useful to problem solving on the various online judges.
Concrete Mathematics: A Foundation for Computer Science by Knuth, Patashnik and Graham. This is a very nice book about many important areas for Computer Science. It covers a lot discrete mathematics and also a lot of special areas. It is however quite hard to read, so a certain level of mathematical maturity is essential to be able to read this book. After having read this book and solved a lot of problems, it will come to your attention that many problems are based on exercises or passages from this book.
Programming Challenges: The Programming Contest Training Manual by Steven Skiena and Miguel Revilla. This is a book about problem solving and about solving problems at online judges. It is definitely worth a read if you are a beginner. However the book fails to deliver its promises, because the problems given in the book are almost impossible to solve just by reading the book.