*166* <http://www.quora.com/Dynamic-Programming-DP/What-are-systematic-ways-to-prepare-for-dynamic-programming#> <http://www.quora.com/Dynamic-Programming-DP/What-are-systematic-ways-to-prepare-for-dynamic-programming#>
I don't know how far are you in the learning process, If you think you are a newbie 1. CodeHS <http://www.codehs.com/> -- Personally graded, video-then-program format problems, startingwith a toy language called Karel and moving up to Javascript, culminating in you making the game Breakout in your browser. Founded by two ex-CS106a TAs at Stanford from which the curriculum was largely adapted. They have probably 40 hours of really good content and, most importantly, provide you friendly, one-on-one help with like ~3 hours turnaround when you need it. Check out my version of Breakout I made after doing all of the content: EpicBreakout<http://www.thenickhuber.com/epicbreakout.html>. (1) 2. Google's Python Class<http://code.google.com/edu/languages/google-python-class/> -- Unlike above, requires some set-up on your machine (i.e. you're not coding in-browser), but still good. About two days worth of lectures on Python with a handful of good problems, culminating in regular expressions (like a custom CRTL + F in a Word document) and a problem where you descramble an encoded image from a website. 3. CodingBat <http://www.codingbat.com/> -- Python and Java problems. No frills, just the exercises -- probably better for someone with a little bit of background (meaning you know what a function/parameter is and can use The Google to figure out/find syntax/functions you need). The site was made by the same guy who taught the Google Python Class. 4. Khan Academy <http://www.khanacademy.org/> -- A few intro tutorials (mostly graphics/animation-focused) in JS using a well-regarded library (Processing.js) and then a wide-open project space for you to see programs other people have made (i.e. the end result and the code) and to make your own, potentially forking off of their work. Here's a game that some guy made that served as inspiration for my version of Breakout:Mercury Subspace <http://www.khanacademy.org/cs/mercury-subspace/938561708>. Pretty great, right? 5. Codecademy <http://www.codeacademy.com/> -- Solid read-then-write-code format of small problems broken into different subpieces. I used their HTML/CSS tutorials to get a basic background before making my personal website (http://www.thenickhuber.com/) and am going to use their stuff on more advanced JS and jQuery when I get to it. Still, their grader is a bit buggy and there's a large variance in course quality/overlap in material, since everything is written by different people. 6. Learn Python The Hard Way <http://learnpythonthehardway.org/book/> -- Read-then-implement exercises, starting from no assumed knowledge. Good, but still not as good as interactive problems; I gave up after doing ~20% or so of it because it's unapologetically repetitive, but have read lots of good reviews of it. If you think you are an experienced.. I am assuming you are used to most of the algos. Here is how to master "Dynamic programming" and also few other algos 1. Problems which simply ask you to come up with the formula of calculating the answer from the subproblems. These are the most common ones and probably the ones you want to practice on (95+% of DP problems are of this type). On TopCoder, they are usually ranked as Div1-500 and easier. On other online judges just look for the problems with many successfull solutions. The number of dimensions of the array doesn't really tell much about the problem difficulty, so don't judge based on that. It only needs a little more implementation. The hardest problems in this category require you to use bitmasks. For example: http://community.topcoder.com/st...<http://community.topcoder.com/stat?c=problem_statement&pm=11379&rd=14437&rm=308640&cr=22685656> Here is a very nice tutorial on bit manipulation techniques: http://community.topcoder.com/tc...<http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=bitManipulation> 2. Problems which require you to come up with efficient linear recurrence, putting the recurrence into the matrix and calculate the N-th power of the matrix. Examples are: http://www.spoj.pl/problems/XORR...<http://www.spoj.pl/problems/XORROUND/> http://www.spoj.pl/problems/TRKN...<http://www.spoj.pl/problems/TRKNIGHT/> http://www.spoj.pl/problems/RP/ 3. Problems which require you to eliminate the inner cycle in the algorithm. For more information you can look at Knuth's speedup of calculating the optimal binary search tree ( http://dl.acm.org/citation.cfm?i...<http://dl.acm.org/citation.cfm?id=1644032>) or: http://community.topcoder.com/tc...<http://community.topcoder.com/tc?module=HSProblemStatement&pm=8712&rd=12046> 4. Problems which require you to effectively calculate and operate on the convex hull of the optimal solutions. For a nice problem with a solution, look at the problem *Harbingers *from CEOI 2009. Other examples are: http://www.spoj.pl/problems/MKPA...<http://www.spoj.pl/problems/MKPAIRS/> http://www.spoj.pl/problems/NKLE...<http://www.spoj.pl/problems/NKLEAVES/> http://www.spoj.pl/OI/problems/C...<http://www.spoj.pl/OI/problems/CEOI09HA/> That's pretty much all you need to know. A word of advice: don't think about it too much. Just solve the problems (not the easy ones!) and after some time your brain will start to recognize the patterns. You will be faster and able to solve harder problems and suddenly you'll become an expert ;-) On Mon, Apr 14, 2014 at 12:58 PM, <[email protected]> wrote: > Greetings to all. > Got a poor performance on this year's qualifiers and would really like to > improve. > What I am looking for is that I need a supplement to practicing on > previous problems. > I may be able to solve them ... but the question is how quickly. > Perhaps this is more of an IQ domain where I need to up my IQ to increase > the speed in solving problems? > Although I did find some deficiency area in terms of programming such as > lacking experience in handling very large numbers, etc. > But generally I think it is more on arriving at the solution. > Does anyone have any tips? tricks? training menu? > > -- > You received this message because you are subscribed to the Google Groups > "Google Code Jam" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/google-code/1659092e-cd44-439c-9ea3-0381bdf62402%40googlegroups.com > . > For more options, visit https://groups.google.com/d/optout. > -- Regards Vivek Dhiman -- You received this message because you are subscribed to the Google Groups "Google Code Jam" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-code/CABaJBvK%2B4jJ4HMMNUyXR_gmSY7NvLJKap%2BmiV5MLnZSjQH_L7g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
