I am currently solving 1700-2000 rated problems. But, looks like it isn't helping me cause I end up going to editorial 50% of the time. I am also having trouble with dynamic programming problems. Solved around 20 dp problems and still facing difficulties finding the states and transitions.
What would be the strategy of my practice?? Help please.
you need more contest bro ))
That would not be a problem for me cause I am participating contests. What would be the practice strategy.
I think this will help us all : https://codeforces.me/blog/entry/66909
Thanks bro.
I'm also solving 1700-2000 rated problems and I think It's normal to see the editorial %50 (or even more) of the time, especially with the 2000 rated problems which are aprox. 250 points above your rating.
I was solving the problems from the problem page with rating 1800+ sorted by the number of people who solved, but right now I'm doing the 1600-1699 ladder as the last 30 problems are 1700-2000 rated problems and difficult for me.
There is also this group which hold contest with past cf problems and seems to have quality problems, so I will do those when I finish the ladder.
Idk if there is a better way to practice.
Yeah, I am also solving 1800+ sorted by successful submissions and giving all contests + upsolving. I think we should gradually increase difficulty once we become confident in problems of a particular rating (solve 70-80 problems of that rating) without looking at the editorial at all. I think what we are doing is the right way.
You should practice by topics: brute-force, greedy, sorting, searching, graph, dp, advance data structure, finally some math and geometry (you should prepare some formulas and codes)
Be patient and practice the topics by order to experts one by one, instead of traning randomly topics and know a little of everything.
Finally to be 2k you need a little lucky, when the problem setters make the problems you can solve fast :)
I think it is well agreed upon by most high rated people that practicing by topic is not the way to go...
I am of course not a candidate master. But I think this practicing strategy is worth sharing. According to https://codeforces.me/blog/entry/66909 you should be a really fast coder and know and can implement major algorithms. To achieve this, what I suggest is to give many virtual contests. Some of the benefits of it:
1) Your coding speed will improve. (I have experienced this.)
2) Your thinking ability will improve.
Generally what will happen is you will solve A, B, C in a maximum of 45 mins. And you will have around 1 hr 15 mins for the next harder problem ( generally D ). So, you will think about it for that much time, maybe you will submit some WA solution, or maybe you are halfway through the solution. In any case, up-solving the problem after thinking for some time is going to shape your thinking process. You might even learn some new techniques.
One more very important benefit that I missed is You will get confidence. You might think "Ok, my performance in virtual contests good so I will perform well now also."
One drawback of practicing problems only in a selected range (Ex: 1700-2000) could be: Say you are practicing 1700-2000 problems for a few days. You will definitely improve your problem-solving skills, but in the next rated contest you might mess up in A/B/C.
Whereas, when you give virtual contests, you trying to solve A, B, C as fast as possible and after that, you are thinking about harder problems for a longer time. This will help improve your overall contest performance.
Try to stop yourself from looking at the editorial as much as possible. Don't be afraid to spend hours thinking about a problem. Speed will eventually come once you get the hang of it, but it's going to take time at first.
I do try to refrain myself getting into editorial but doesn't help. End up anyway after trying for one hour. I will try hard
I actually understand where you're coming from, as I was in a similar position not too long ago. I would try a problem, then peek at the editorial and convince myself I could have figured that out in a real contest. Something like "oh it's just DP, that's so obvious. I know how to do that." By doing this, I could blitz through a ton of problems in a day and feel good while doing it.
Eventually, I realized that this form of practice wasn't helpful at all, and I was basically lying to myself. I kinda just forced myself to stop looking unless I have exhausted all other options, which can take hours or days in extreme cases. It's hard at first, but it did ultimately work for me. Good luck on your practice!
I don't think it's necessarily productive to spend many hours/days being stuck on a single problem. Half-solving 3 problems is probably better than completely solving 1 problem. Errichto suggests on his Github that you should read the editorial if you are completely stuck for just 30 minutes.
I think it ultimately depends on the person. There's no definitive way to practice.
If you're able to half-solve 3 problems AND absorb the techniques used in the editorial AND be able to apply it effectively on a real contest, then more power to you.
If you half-solved 3 problems but still wouldn't be able to do it on your own because you simply relied on the editorial, then in my opinion you're better off struggling on one problem and really getting it.
I think there should be a healthy mix. There are some problems I do intending to solve it on my own, but I think I learn the most concepts by choosing some problems I know are too hard and reading editorial early so I can see cool new techniques which I can hopefully apply to problems later I solve on my own.
Totally agree, if you just straight up don't know the technique altogether then it might be better to look at the editorial.
OP said he was struggling with DP problems, and his post suggested that he already knew DP but was just struggling with applying it to problems, so I think in that case it might be better to just think hard about problems.
Stopped looking at editorials, now can't stop looking at your profile picture
As someone who knows him in real life, I can attest that smax does actually look exactly like his profile pic.
Reading the "HIM" on your reply was enough for all of us. SIGH
Honestly solving problems in a difficulty such that you need to look at the editorial 50% of the time seems pretty good to me. It means its hard for you and you should be improving by solving them, of course dont be lazy and just jump to the editorial straight away, but you seem to be on the right path
ok i was reading the comments and some of you believe that reading the editorial will help!! thats wrong (in my opinion) when you read the editorial you have nothing to solve! you will just AC that problem and then you can not think and solve problems independently and you cant focus on the problems because in the contest there is no editorial. the best advice that i can tell you to stop reading editorials and think on the problems for 3-4 hour if you still have no idea JUST go and read the first 2 line of the editorial and then think on the problem again for another 3-4 hours and do this again and again(every time read 2 more line). in this way you learn how to think to the problems and how you should think to solve problems and this helps aLOT! and i believe if you want to reach some rating solve the problems with +300 rating and you have to do it a lot to become fast in it! and i promise you this will work :)
Have you got any tips how to stay focused and motivated (without looking at editorial) when being completely stuck on a problem 3-4 hours?
idk other peaple motivations but for me i go and try to solve hard problems (rate > 2200) and solving a high rating problem by myself is my motivation and being focused on a problem for 3-4 hours is just practicing if you practice it you can do it after a week or maybee month and it will helps a lot
Not sure about this, you say that we should spend 6-8 hours in a hard problem. That's all the time that I have to practice in a day. A problem per day does not seem right to me.
Probably what you understand by "using the editorial" is different from what I (and probably people in the comments) do. I don't just the AC, after trying the problem I read some lines of the editorial and try again, then if I'm still stuck I'll read the whole editorial or more lines. After being sure that I understood 100% the editorial I try to code it. Understand 100% the editorial also means to notice why I did not come up with the idea or in which part my solution/thinking fails. Then I get AC and see the code of top coders to see If I can improve my code.
ok so thinking to the problem is very very helpful and spending 6-8 hours on a problem is so good because in these 6-8 hours you will be thinking to lots of ideas and they are good but they are not helpful on this problem. but those not helpful ideas in this problem will used later in some contest and then you can solve that problem with this idea! so thinking to a problem for a day i completely ok and so good!!
But how do you get the motivation?? I want to do the problems myself, sometimes I get it, sometimes stick for 1 hour and then I can't think out more and somehow move to the editorial. Any way to be motivated?
What about looking at the editorial after you solve the problem? Sometimes the editorial has simple approach.
It's a must in my opinion unless the problem is too easy. I have learned a lot (and i really mean it) by looking at other people code and editorial's approach.
https://codeforces.me/blog/entry/66909 As mentioned In Above Given link one should switch to topcoder and atcoder for solving problems. Can't we just solve 1600+ problems at cf?? Will it do the trick?!
Okay now wth everyone is down voting ! ABSURD
jsut write more and more contests. i think upsolving after contest is not so needed. if u write a contest and solve 3 tasks, u can spend 2hours to solve 4th and 5th task. but if u dont have idea after 2 hours u must see an editorial
Solved around 20 dp problems and still facing difficulties finding the states and transitions.
I solved 100 but still I face difficulties
By facing difficulties, I mean not able to solve 1800-2000 level dp problems sometimes.
I just mean you need to solve more
You mean "How to be purple?", right? Just ask from Shrek, cuz he turned himself into the purple from green just to be in Avengers movie.
just by hacking into the Codeforces (/joke)
hossainzarif: I solved 20 dp problems and solving 2000 rated problems, but I cannot become a candidate master. Please Help Me: Still struggling on Div2 C problem
maybe you would try 1400-1600 problems and improve implementation skill. Learn to implement basic mathematics, sorting and binary_search. This was enough for me to clear the expert boundary. As per candidate master which you are looking for, I am sorry because I can't give you advice. Simply because I haven't reach the level till now.
Ah, I was actually being sarcastic. Thanks for the advice though.
Ah, missed the ':' sign. Me being dumb.