Get Time
Search | Watch Thread  |  My Post History  |  My Watches  |  User Settings
View: Flat (newest first)  | Threaded  | Tree
Previous Thread  |  Next Thread
[ 1 2 3 4 ]    NEXT >
Cookbook update (new prizes!) | Reply
We keep writing recipes for Algorithm and Marathon chapters, and to provide a bit of extra motivation for you, we're adding short-term rewards.

The first 12 contributors to deliver an approved recipe for one of these chapters, will win a TopCoder t-shirt. The t-shirt will be shipped out as soon as the review board approves the recipe - no waiting for the book to be published!

Each of the eligible recipes must be done by only one person from start to finish; with optional comments from other members. This means that you have either to finish a recipe you have already submitted in round 1 or 2, or write a recipe nobody has started yet. If you want to write a recipe but are unsure what it should look like, check the accepted recipes and/or contact me for comments on the specific recipe.

We also want to remind you that the top 60 contributors on the Cookbook project receive a free copy of the Cookbook once it is published. So far it is virtually every competitor, so hurry up to grab your freebies!

Next posts in this thread will provide the list of recipes with notes on their status. "accepted" means that it is approved (and is getting a t-shirt ASAP); "started by" means that there is a draft of this recipe somewhere so its author can finish it; "not started" means that anybody can write it; "needs some thought" means that I still have to invent some way to fit the material of this recipe in actual recipe format and welcome any suggestions.

Also note that comments on existing recipes are welcome, however, minuses without explanation are not. If you minus a post because you dislike the poster, it's ok (from process point of view); but if you think the recipe is somehow flawed, please comment this, so that we can improve it (and honor your contribution appropriately).
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
1. Algorithm Competition

1.1. Getting Started
Understanding SRM competition format accepted (mart0258, Nickolas)
Submitting Your Solution accepted (mingshun)
Setting up your environment for an SRM started by vijay03
Writing Template not started
Using and Understanding C++ Macros accepted (Eryx)
Using Prewritten Code accepted (, Nickolas)
Understanding Your Rating and Why It Changes accepted (bmerry)

1.2. Approaching the Problem
Dissecting Problem Statement accepted (antimatter, Nickolas)
Planning an Approach to the Problem not started
Recognizing Problem Types started by StevieT
Solving Problems Using Alternative Bruteforce Solution accepted (Nickolas)
Practicing & Improving Your Style needs some thought (momtchil)
Choosing Best Programming Language not started

1.3. Finding and Avoiding Mistakes
Understanding the Importance of Testing accepted (Nickolas)
Avoiding Common Coding Mistakes started by maker2807
Testing for Correctness accepted (Nickolas)
Testing for Efficiency not started
Choosing Correct Data Types accepted (dttri, Nickolas)
Using Rational Arithmetic to Avoid Floating Point Imprecision accepted (Nemui, Nickolas)
Testing Using Alternative Brute-Force Solution accepted (, Nickolas)
Finding Common Challenge Opportunities started by muxecoid

2. Common Algorithmic Problems

2.1. Main Data Types, Data Structures and Related Problems
Working with Numbers not started
Working with Strings started by dimkadimon
Working with Fixed-length Arrays started by caustique
Working with Variable-length Arrays (Vectors) not started
Working with Maps and Sets not started
Representing Sets with Bitfields accepted (bmerry)
Converting between Numbers and Strings accepted (Nickolas)
Parsing String Input accepted (Nickolas)
Iterating Over All Subsets of a Set accepted (dimkadimon)
Iterating Over All Permutations of an Array accepted (quimey, Ferlon)

2.2. Math and Geometry
Performing Calculations Modulo p started by Nemui
Handling Prime Numbers started by caustique
Using Euclid's Algorithm started by dimkadimon
Understanding Combinatorics accepted (Ferlon)
Using Inclusion-Exclusion Principle accepted (Ferlon)
Using Recurrent Relations for Calculations started by Ferlon
Defining Probabilities not started
Using Vector Operations accepted (bmerry, Nickolas)
Working with Lines and Segments started by Radheya
Working with Multiple Points not started

2.3. Graphs
Recognizing and Representing a Graph started by dragoon
Understanding Properties of Graphs not started
Handling Grid-Represented Graphs started by eraserhd
Searching a Graph Breadth-First started by pszemsza_
Searching a Graph Depth-First not started
Finding the Best Path Using Dijkstra's Algorithm started by Ferlon
Finding the Best Path Using Bellman-Ford Algorithm started by dragoon
Finding all Best Paths Using Floyd-Warshall Algorithm started by dragoon
Finding Maximum Flow Using Ford-Fulkerson Algorithm started by Ferlon
Solving Minimum Cost Flow Problem started by Ferlon
Solving Maximum Bipartite Matching Problem started by ibra
Recognizing the Algorithm to Use started by Nemui

2.4. Recursive Problems
Recognizing Recursive Problems accepted (Ferlon)
Solving Recursive Problems accepted (Ferlon)
Optimizing Recursive Solution started by jmzero
Solving Two-Person Games with Perfect Information started by rasto6sk
Introducing Dynamic Programming started by Dumitru
Optimizing DP Solution started by Nemui

2.5. Miscellaneous Problems
Using Greedy Algorithms TBD by supernova
Using Binary Search accepted - examples (Eryx)
Using Ternary Search accepted - examples (Eryx)
Using Backtracking started by martin-g
Using Linesweep Algorithm accepted (bmerry)
Constructing Combinatorial Objects started by ntmquan
Finding the lexicographically K-th combinatorial object accepted (rrpai, Ferlon)
Using Regular Expressions not started

3. Marathon Competition

3.1. Getting Started
Understanding Marathon Competition Format accepted (Nickolas)
Dissecting Problem Statement accepted (amiune)
Submitting Your Solution not started
Understanding Absolute and Relative Scoring Systems accepted (Nickolas)
Understanding Specific Marathon Matches started by kit1980

3.2. Working on the Problem
Measuring Time accepted (cant_dance, Nickolas)
Running Visualizer with Your Solution accepted (Nickolas)
Setting Up Your Environment/Keeping Track of Your Progress not started
Rewriting the Visualizer started by eraserhd
Implementing the Limitations Locally TBD by Nickolas
Comparing Solutions started by eraserhd
Deciding How to Improve Your Solution started by paranoia
Improving Your Solution in the Home Stretch started by eraserhd
Fine-tuning Your Solution not started
Choosing Best Programming Language not started

3.3. Methods of Solving the Problem
Identifying Principal Types of Problems accepted (nhzp339, Nickolas)
Generating Ideas for Your Solution accepted (Nickolas)
Approaching Single-Player Game-Based Problems accepted (Nickolas)
Using Hill Climbing Techniques accepted (Nickolas)
Using Simulated Annealing Techniques not started
Using Genetic Algorithms not started
Using SSE not started
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
I want to write about submitting the solution how can I do that ?
Re: Cookbook update (new prizes!) (response to post by TeCNoYoTTa) | Reply
Just write the recipe and post it as a separate thread to (assuming that you're going to write about Algo).

This recipe should describe the required structure of the solution, with limitations that apply to submitting it - memory and time limits, allowed languages and their compilers/versions, allowed libraries etc.
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
i have a recipe but i think it's not so difficult !
given n which is an integer
and an array contains n-1 element "Random Arrangement" which is all numbers between 0 and n except one number how can i get this number using a program which its complexity is O(N).
example :
n = 7
Array[] = {0,3,5,2,7,4,6}
the output should be 1
Re: Cookbook update (new prizes!) (response to post by Seddik) | Reply
I think this task is too simple, too specific and not common enough to be included. Cookbook should contain generic things which are not evident, and this is a one-liner.
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
Huh, and now we see three different recipes about using Dijkstra's algorithm! That's no good. Maybe it would be better if coders must notify in advance in this thread that they start some recipe or ask one of copilots via e-mail about actually free ones?
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
Wait, so this Cookbook won't be free? :( I thought it was going to be more of a free/open source/member driven project with the goal of writing a giant guide full of general programming information/algorithms. Similar to the tutorial section but more organized. I guess I was mistaken...

*sigh* any idea how much it's going to cost?

Edit1: I guess I could try contributing to get a free copy, I gotta allocate some time for it first lol

Edit2: nevertheless, it feels weird having TopCoder milk our collective knowledge like that and sell it back to us for a profit...
Re: Cookbook update (new prizes!) (response to post by frank44) | Reply
Don't really know why you've had this idea - it was clearly stated from the start that we write the book, and O'Reilly sells it. You do buy algorithm books written by other people, don't you?

The draft version of the book is going to stay in the wiki, I think. As for the price of the book, I think we haven't set the price yet.

Well, people who are "milked" are paid for their milk, what's so weird about it? People who wrote educational content were paid as well. TopCoder isn't taking any of writer's payment, all profit from the book will be distributed between O'Reilly and book's authors.
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
Hi Nickolas, I have post my ideas about solving maximum bipartite matching problem, but I wonder why the status is still Not started ..
Re: Cookbook update (new prizes!) (response to post by acerwei) | Reply
The status is updated not automatically but by hand. I'll be updating the statuses after I read the recipes thoughtfully and post comments to them.
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
Is there a way to put code snippets like these ones

in the book as an appendix or something or they don't fit into the book style?
Re: Cookbook update (new prizes!) (response to post by amiune) | Reply
If you need them in your recipe, you can put them there, no problem, we're going to have a lot of code in recipes. Not sure about appendix though.
Re: Cookbook update (new prizes!) (response to post by Nickolas) | Reply
Is it still possible to suggest recipes that are not yet in the structure?
If yes, I'd want to suggest and write "Choosing programming language" (for both Algo and Marathon): for example, if some problem uses long arithmetics, it's may be beneficial to use Java. Similarly for regular expressions, CSV parsing and for different time constraints.
Re: Cookbook update (new prizes!) (response to post by kit1980) | Reply
Sure, I'll be adding them to the list. Just make sure to cover a lot of detail in these recipes.
[ 1 2 3 4 ]    NEXT >