I'm looking for a list of problems (the more the problems the better) with their corresponding algorithm technique(s) these problems can be solved. For example:
Shortest Path problem -> Dijkstra's algorithm (dynamic programming), and maybe others ...
Knapsack problem -> can be solved with dynamic programming, ...
Convex Hull problem -> could be done by divide and conquer, ...
If in every problem there is a small paragraph explaining how the problem is solved (e.g. it could explain how to "divide" the problem in a divide and conquer algorithm) with the given technique that would be even better.
Is there any such list available in the net or in a book?
*UPDATE after locking ... *
I'm not looking for problems mostly found in programming contests like TopCoder. Problems from such sites (contests) use to "hide" the problem definition which is supposed to be found by the user. I'm looki开发者_如何学Pythonng for problem definitions, like Given a graph G = (V, E) ... and it's given solution technique Could be solved using divide and conquer ... instead of problems definitions like this: Given N houses, John tries to find a path to go home as fast as possible ... which are how problems are described in programming contests sites.
This question has nothing to do with homework as some people thought. I want to "exercise" my algorithm solution technique skills. By knowing that a given problem can be solved by a given technique will help me try to find a solution using this technique and so I guess will get a deeper understanding of each technique, plus I will be become a better algorithm solver.
The site Algorithmist categories many problems (but not all) from UVa online judge and Sphere Online Judge. For example, here is the partial category listing for UVa Volume I. Also check their Categories page.
Topcoder categorizes each problem from every past contest they held. Besides that, you can filter problems by difficulty, as well as read editorials or other people's solutions.
精彩评论