Many people tell you that solving lots of problems and you will become Topcoder one day. It is True, and is the only universally approved way in competitive programming community, but it is actually just half of the story. Let me first explain to you the `science` of problem solving (which is not very scientific, since it was only developed by myself). For each problem, in order to solve it, you must jump over a gap. It can be either a difficult implementation, or some hard-to-see observation, difficult algorithm, etc. Some problems are very easy, because those gaps seem so small and passing through them feel just like casual walking. Some problems are very hard. The gap is just too huge, or there are many many gaps, and you can get stuck in the middle because you're too tired after maybe first gap. Using this science, we can explain a lot of phenomenon in the competitive programming world: • Some guys learn very fast. Some people are born with high jumping ability (problem solving skill). They can jump over average gaps easily. • The more you train, the better you become: Of course, if you jump around all day, you must be somewhat better at jumping through gaps, and thus being able to solve more difficult problems in less time, since you don't need lots of mental preparation or warm up excercise before jumping. But.. it also means that, if you just solve too easy problems, you can still only walk through small gaps. You may walk through gaps faster, but you are still unable to jump.

Теги других блогов: training competitive programming problem solving