shakil's blog

By shakil, 11 years ago,

I have some questions in my mind

How to perform better in codeforces & Topcoder.
can anyone give advice , share some tips & tricks , to improve my/our skills
Which way I should proceed?
What should I know/learn ?
How to increase my knowledge base?

It would be very helpful if someone kindly shared their thoughts<what they do>
so that coders like me can improve our skills & be benefited.

• +22

 11 years ago, # | ← Rev. 2 →   +10 I have only one piece of advise.Practice makes perfect.Upsolving is very important. In my opinion there is no point in taking part in contests without upsolving them later if you want to grow.
•  11 years ago, # ^ |   +3 what does upsolving means?
•  11 years ago, # ^ |   +8 Same question I've got yesterday while chatting with msg555. It seems that this term is used only in Russia while foreigners don't understand it.Upsolving means "solving problems after the contest".
•  8 years ago, # ^ |   0 yeah..i am also agree !!Upsolving is much important.
•  8 years ago, # ^ |   0 but how would u know? you are unrated, and haven't made even one submission here on CF. :D
•  7 years ago, # ^ |   +11 he has rating now
•  7 years ago, # ^ |   +3 ROFL =D
•  6 years ago, # ^ |   +37 seems upsolving was working well for him
•  2 years ago, # ^ |   0 LMAO :D
•  8 years ago, # ^ |   0 still solving all the time like i practice for one month and get rest one month and so on that is not up solving upsolving mean that every week you must practice and practice smart not hard
•  11 years ago, # ^ | ← Rev. 3 →   -15 Please don't be offended, but, as I can see, you've never been neither red nor green. So you can guarantee the formula "practice makes perfect" works for becoming orange from blue. OK, I believe it works the same way in becoming blue from green, but what about the last subtask? We should listen to opinions of some stable reds who were greens in the beginning of their olympiad career.
•  11 years ago, # ^ |   0 Before having opinions from stable red,you can share your opinion with us because you were red for a while, where you started from green [N.B: Although you were not eligible for green at your starting :P .so you shifted your curve in next contest]:D
•  11 years ago, # ^ | ← Rev. 2 →   +1 My opinion is that training regime for becoming red from orange is totally different from the one for becoming blue from green. Improving your skills in sports programming, like every studying, should be performed consequently. For example, as you became a blue recently, you can give a piece of advice to the topic starter, but Div-1 participants (including myself) forgot details of this step of training years earlier, so we really can't tell to you guys something cleverer than "practice makes perfect", but telling this is telling nothing at all, yeah?Anyway, here is going discussion on this issue in Russian, if you can translate.
•  11 years ago, # ^ |   0 In TopCoder such method works... Even to become stable yellow/red from grey. =)
•  11 years ago, # ^ |   0 Yeah , I agree with you.But sometimes upsolving them becomes really difficult because those exceeds my level of thinking.what should I do then?Thanks for your kind reply.
•  11 years ago, # ^ |   +1 What should you do if you want to become international chessmaster? Or if you want to enter top-ten tennis players list. Do you think there is any "easy trick" which could help you avoid thorough studying, improving your practical and theoretical skills?Why do you think that situation here is different? You need to solve a lot of problems and you need to read a lot of theory. I myself spend almost no time for any studying of this kind - and behold the wonder - I am not red, I am green! ;-)(I also suppose that some people have more patience and attention than others - and we call this "having talent" - it could help or make your learning faster - but it is important when you want to became No.1, I think...)
•  11 years ago, # ^ |   0 Forgive me if I stated it incorrectly.I didn't meant to be "easy trick".I know if someone wants to be red he must work for 5+ hours a day.I just wanted to know which is the right way of doing it.I am asking about how to optimize my working time .can I ask you what kind of material we should study?Thanks for your comment.
•  11 years ago, # ^ |   0 Although my rating is not much higher than you, but still I would like to share something, that practicing one or two div2 500(which usually do not require any specific algorithm) at topcoder daily really helps to increase rating at green level, and will surely make u blue at codeforces and around 1100 at topcoder.      I am also following this approach, due to which my rating is increasing from last four SRMs.
•  9 years ago, # ^ |   -20 Agree
•  8 years ago, # ^ |   +21 By chance I just run into your comment one year later than I first read it. During this year I've followed your adivse and I have upsolved my contests, learning much more than I did before and getting from blue-purple to orange. I even mentioned your advice to my friends and other users on quora.So thank you for your advice Fefer_Ivan!
•  2 years ago, # ^ |   -20 Apart from upsolving, can you tell me Which type of practice I should do? I am green in my second account and I can solve A and B and sometimes C questions during contest...
•  2 years ago, # ^ |   +5 Here's one piece of advice: don't use multiple accounts
•  2 years ago, # ^ |   -10 Ya you are right :)
•  » » 9 years ago, # ^ |   +10 When you get out your comfort zone it becomes the learning zone, I am completely in agreement with you, I think that getting out of the comfort zone, upsolving , and trying always to solve harder problems is the key to success in programming competitions.
•  » » 8 years ago, # ^ |   0 I am currently doing upsolving,I try to solve the hard problems of the contest and if I am unable to solve them,then I go for editorial and read other people codes.I want to know what will be better, reading the algorithms in advance from the books or trying to solve hard problems and then read the required algorithm?
 » 8 years ago, # |   0 thanks...
 » 8 years ago, # | ← Rev. 4 →   +41 Solve 1000 problems, then solve 1000 more and bam, you're red!Actually, the most important thing is to solve problems you can't usually solve. To think hard about the solution and make everything clear in your mind. If you just solve the problem, but some details are not really clear to you, then it doesn't mean anything. Next time you see a similar problem you won't solve it, you won't be able to use what you should've learned while solving the problem. And of course, after every contest solve the problems you didn't solve during the contest (well, not necessarily problems far above your level), with or without the editorial, it doesn't matter.When having to just practice and solve bunch of problems I found out that the best way to do it is to find a friend or colleague who's willing to do the same. For example I did that on SPOJ with stjepan when we started competing. We did several hundreds of problems in a few months and learned all the basic algorithms and tricks one should know to qualify for IOI.
•  » » 3 years ago, # ^ |   -16 Can you list those 100 problems and share ?
•  » » 3 years ago, # ^ |   -6 were you hacked?
 » 8 years ago, # | ← Rev. 2 →   +31 Like this.
•  » » 8 years ago, # ^ |   0 and this way you don't even need to be purple in the way! that's efficient D:
•  » » 8 years ago, # ^ |   0 USACO gold sounds very competitive. If so, how come you do so well in USACO and remain blue on codeforces? (You were even a green coder a few months ago.)
•  » » » 8 years ago, # ^ |   0 I am actually quite novice to code forces contests, I am still getting used to them. :)
•  » » » » 8 years ago, # ^ |   +8 I'd say you're an expert on CF contests :D
•  » » » 8 years ago, # ^ |   0 TBH USACO system has a flaw compared to serious contest sites: you can't move down. In order to reach the gold division, you need to do really well just once (silver -> gold, if you do that then bronze -> silver should be trivial), not often. Also, USACO has partial scoring and doesn't depend on time or number of WAs, which makes it even easier to get 1 successful contest. So ratings on CF and USACO division placement are almost completely unrelated things.
•  » » » » 8 years ago, # ^ |   0 I completely agree, in competitive yes, USACO is easier than code forces, despite the same difficulty of problems. I am still a blue coder as I have mentioned above, I am really bad at knowing how to implement a problem fast. USACO allows more than 1 hour to think per problem, which is a huge advantage.
•  » » » » » 8 years ago, # ^ |   0 I see. I don't really know anyone working for USACO in person, so was just wondering.Anyway, thanks for sharing great advice!
•  » » 5 years ago, # ^ |   +10 Step 1: Learn and Practice Algorithms DFS and BFS.
•  » » » 5 years ago, # ^ |   0 Step 1: Learn and Practice Algorithms-traversals
•  » » 2 years ago, # ^ |   0 Nice one, I think some of the algorithms/data structures you mentioned are not sorted in a good order, also about the steps, i think you should do all the 3 steps together, for example one may think that its better to first learn all that tough data structures then try implementing 800 difficulty problems(at least i thought you meant that).About the last step, in my opinion 5-6 pages is too much to get used to simple implementations, its probable better to not to get stuck in 800-1200 difficulty problems for long time.If you think you don't spend any time to solve the problems but you cant implement them fast enough, then you probable need to practice implementing hard problems(not just simple if-else problems but some heavy ones), if you think you are solving the problems slowly but you easily go through the coding/debugging/optimizing part, then you should probable practice more on solving hard problems, and then go through the implementing part as fast as you can(it doesn't work for all the peoples, and its not true for all the problems, some of them are more implementation problems and some more think-forces). In short, try to be balanced, otherwise you cant do your best.(it also depends on what you want, do you want to be able to code/solve as fast as hell?, for example in some jobs, its more important to implement than to solve)Also take virtual contests frequently, solve up the contests you take, you may solve some problems with +300 difficulty higher than you rating, also don't burn the problems, but boil them, it means to not to go straight into the editorial, spend some time on the problem, don't check the editorial as long as you are able to approach the solution, then if you were stuck and you've spent enough time(not less than half an hour, it depends on lots of things, specially your feelings), then its fine, read the first phrases of the editorial, until you found something new that may help you, then again spend more time trying to solve the problem, knowing the new thing will help you think more focused, and so, you may solve the problem with that little help, do the process until nothing else remains or you have solved it. (in that point you actually boiled the problem, now you can eat/solve it whatever you feel better (╹ڡ╹) )Don't be mad if you couldn't eat/solve the problem even after boiling it, the important part is to walk through that boiling process, not to solve the problem(usually).Also if you couldn't solve a problem or it took too long, then try to find out what was your weak point(s), if you solved it and you found something interesting(an idea, a trick, an algorithm, whatever you didn't know before), then first make sure you understand them, spend some time just thinking about "What the heck just happened?", then if you can, try solving some problems using that thing(probable you wont find any ^_^), you may also write them in a book for next times or try explaining them loudly or find some applications for it(find somewhere to use it, don't make it a useless trash in your packet), just, i don't know, learn to use them later, simple !I hope it would help, probable it will, correct me if iv'e made any mistakes.I respectfully don't guaranty anything $'_'$.
 » 7 years ago, # |   +46 Another option.
 » 7 years ago, # |   +17 Use the magic in codeforces.......
•  » » 6 years ago, # ^ |   -10 What magic?
•  » » » 6 years ago, # ^ |   +9
•  » » 6 years ago, # ^ |   +5 Five years have past...
•  » » » 6 years ago, # ^ |   +8 Now,i'm really curious to know your approach for becoming red. You were green once. Please share your experience.
•  » » » » 5 years ago, # ^ |   0 I agree. It would be nice to know your approach
 » 6 years ago, # |   +5 Red to become, patient you must be. Some of us will never become red. And some of us will take a while to reach red.Anyway, I think we(greens and cyans) must focus on two things-1. If you know a certain trick/method/DS/algo, then increase the probability of getting AC for the problems which use it. Hence, practice.2. If you don't even know enough trick/method/DS/algo, then you should learn them. Hence, upsolve(because there are so many things we don't know, that it may get overwhelming to even choose something to start learning.).
 » 5 years ago, # |   +21 To become red from green, turn yourself into a working traffic light and when you become red, break yourself! :)
•  » » 5 years ago, # ^ |   +36 Should we laugh?
•  » » 2 years ago, # ^ |   0 Can you please add a video tutorial? :( i'm not that much good at it.