Hello peoples of codeforces, I hope you are doing well. This is my first blog and I want to ask a question: For people who can solve A, B, C Div 2 problems comfortably, how to improve their skills to solve harder problems within the contest time? I usually solve the first 3 problems from 45 minutes to 1 hour, but then I will find myself stuck coming up with a solution to the problem D. Without solving 4 or more problems per contest, I will never reach purple :(. Are there any tips for me to overcome that? Which tags do D problems usually have? What is the average rating of the 4th problems? I would appreciate your helping. Have a nice day.
Auto comment: topic has been updated by ldn694 (previous revision, new revision, compare).
What I am finding is that Div 2 D is a kind of a defining line as to where codeforces problems start to depend on algorithms more. Obviously A and B tend to be based on observations, and even C mostly utilizes sorting, searches, or basic graphs. If this is the case, I would recommend delving deeper into the topic when you come across a problem you do not understand, covering your bases more by category rather than broadly. At the very least, this is what I am trying and what I think would most effectively break out of the plateau at this level.
I usually just randomly get problems with the rating between 1800 and 2100 and try to solve them regardless of their topics. That may be the problem in the way I practice. Focusing in some particular fields rather than a broad but shallow understanding of many categories is good advice though. Thank for replying me btw :)
Difference in difficulty is higher between Div. 2D and Div. 2C than between Div. 2C and Div. 2B. So it's okay that you can't solve Div. 2D. Apart from the standard advice (solve more problems ...), I advise you to think about Div. 2D in the same way you think about Div.2 A-C. Usually, the number of participants, solved Div. 2D is smaller because this task is D, not because of the complexity.
A perfect example of this effect can be seen in problems 1400E - Clear the Multiset and 448C - Painting Fence. These tasks are the same, but have different difficulty values, 2200 and 1900.
Thank for your advice though. Sometimes, knowing that I am solving a D problem just makes me feel less confident, which leads to wrong thinking and make the problem become harder than its original difficulty.
What if it's because of rating inflation?
Do you mean these 2 problems? Even if we assume that the reason is inflation, we can compare the ratio of those who solved this problem to the total number of participants: 436/14710 vs 160/2596...
I didn't solve this problem(1400E) during the contest. I didn't believe in the correctness of my solution. Exactly because of this reason. I didn’t think the problem could be solved so easily.
Может все же сам виноват, но именно буква E в задаче меня взволновала.
After reading the title, I thought you will give tips to us xD
One extremely important thing is confidence.
Of course, you need to solve enough problems and know the algorithms / ideas needed for a div2D, but even when I was at that level I only solved ABC in contests for a while because I thought "I'm not good enough to solve D." However, after I solved D in one contest, I got confident I could and then weirdly enough I started to do it consistently.
Weirdly enough, even after reaching max master I still fail to solve D relatively often.
I agree. Actually, I am more paranoid about screwing up Div. 2 AB for silly reasons than my ability to solve D lol.
PRACTICE
Have a look at 1400-1900 section of this
This is where codeforces becomes repetitive. Even if you keep giving contests you will not improve. Codeforces is highly competitive platform. So started solving at other platforms like codechef and leetcode. I am improving at applying more advance data structures like segment tree.
you don't need segment tree to get into CM in CF.
if you below CM, i don't recommend you to learn any advance algorithm at all
If I didn't learn any "advanced" algorithm before CM I would be so bored...
for entertainment purpose, you can do whatever you want.
for learning purpose, i personally won't recommend it.
IMO, cp is not an effictive way to exercise you to think.I mean it takes a lot of time that you are moving a wrong path. Try doing dirctly math problems or may be playing chess could help ? Atleast I'm doing these things to break out of 2 questions
Repetitive only if you don't learn from the problems you do.
If you don't take contests you don't improve.
This is exactly why you should do Codeforces over Leetcode. I personally don't know about Codechef as I don't use it.
Segtree is the last thing a cyan should worry about. I got to purple not knowing any DS. You need to get good at the tools you have before you get a new one.
How do you guys get past purple in 3 months. I can't even get past cyan in one year
so u finally got past it
Yes! Took a while, but I did it.
1) Solve three problems
2) Solve one more
I think it's good to be specific about what you want to improve, but sometimes I think these blogs are too specific. I think most useful tips you will receive will be similar to tips for general improvement.
I think this is actually somewhat expected. Typically difficulty of problems in a contest follows some sort of steeply-increasing curve. So I can easily imagine a contestant that takes 5 minutes to do A, 15 minutes to do B, and then 40 minutes to do C. So how long should they expect to spend on D? Probably more than 60 minutes, which is all the time they have left -- so it's not weird to solve ABC and not D, even though you only spend half the contest time on ABC.
So maybe you should work on solving ABC faster as well, to give yourself more time for D.
Basically, I think you should just continue to practice and improve in general. It looks like you've already improved a lot since you started, so good luck!
You need to know some data structures like BIT or SegTree(little bit harder)
And math skills are required too.
You can become a Master by solving only ABC.
chromodynam1c
Have a look at my profile. I have solved only ABC in recent contests, still, I am very close to CM(Just one rating point away).
To be perfectly fair, the last contest wasn't exactly a normal contest. D was harder than usual (I and 10 out of 11 of my purple friends didn't get AC); only 16 people passed the systests for E out of 167 people who passed pretests; and while I disagree a lot of people found C harder than usual. The FSTs on E were so impactful that CF Predictor said +8 before systests (which would keep me in CM) but I got +42 after system tests.
Not only that but in the official standings, I was the highest ranked out of everyone that got ABC but only because of time and no WAs.
In a normal contest where I'm at the speed I'm normally at, ABC would get me at most -50.
In sharp contrast, my previous contest I had ACD (I FSTed on B) and I got -18. Only solving ABC would've lowered my delta even more.
Not to mention that I got CM in a contest where I solved ABCD. In almost all rounds I only solve ABC, I get negative delta.
Also, "solving ABC" is something that varies highly depending on the contest. Not all contests have 6 problems. In 5 problem rounds, the problems are harder than their 6 problem round counterparts to keep the round balanced.
Just as I am a bad example in this situation, it isn't exactly fair for you to say "I have solved only ABC in recent contests, still, I am very close to CM(Just one rating point away)." since as I said this contest wasn't a normal contest and if it were any other round you would get far less delta. If you don't count the last contest, the round where your rating peaked in you had ABCD where D had subtasks, yet you only got +7 (presumably because of your time and WAs on C). 4 out of the last 5 rounds you participated in before that one had 5 problems, and the other one was an educational round where you got negative delta.
TL;DR: Normally you can't actually get Master from solving only ABC. Last round was unusual.
What to do to get out of expert? I am struck for 4 months. Not that I left my training. During my 4 months, I solved around 200 problems. Still I am exactly where I was in 4 months ago and I am not even being able to reach my previous rating that I achieved 4 months ago. What to do? Everytime I do better turns out I did better to be fucked up next time. How you improved so quickly? Please dont say just solve problems because I am solving problems and I see editorial if I am completely struck, not struck for 1 hour or something like that but completely struck.
I need your help badly. Please.
One of the things that helped me in improving was being in Discord communities where I can meet and talk with lots of people better than me. As they say, you are the average of the five people you spend the most time with. You get exposed to more problems, more ideas, more ways to think. Obviously, Discord isn't the only way to do this, it's just what I'm comfortable with.
Solving problems isn't something that'll get you there on its own. You need to learn from the problem you solved. If you got it slow, why? If you got WA, why? What can you do to prevent it in the future? Did you miss a critical observation? What path of thinking would've led you there? These questions are critical, and sometimes you can't find the answer on your own.
So, that's something extra of problem solving. Thanks a lot, I would try to give the proper value of your words and reach at least CM. Thanks a lot.
The point I wanted to make was that we can get a very good rating by fast solving. Ex:
1. The last contest
2. The recent 5 problem contests
3. CF round 671 which had 5 problems <= 1500
4. The Div2 rounds wherever there is Div1+Div2
You can't say all these rounds were unusual, right?
They are still uncommon. Most contests will give negative delta to a CM with only ABC solved. After you get good rating from those rounds, you're just going to fall back down because not all contests are like them.
You just missed my point entirely.
Okay, I understood now. Thanks for your time :)
one rating point away till eternity now
You just need to practice more. After every contest make sure to upsolve at least until D. Other than that, there's not much else to say.
I can't solve D div 2 too. But I usually solve ABC from 20 to 30 mins. That's probably why I reached purple =))
Yes king
orz
Thank you hung cobol
Thanks Bruh! [user:idn694]