Hello CodeForces!
This is my first time writing a blog post so please hang on with me c:
I'm currently a student in US studying Computer Science/Engineering. I never focused much on programming like my fellow peers in the Uni I go to (some of them apparently did USACO or some form of olympiad), and I have this feeling that I'm falling back behind regardless of how hard I try in school. # Note that I do have some mathematics background, qualifying for AIME with a score of 9 (which isn't that amazing, but still something).
However, that feeling of falling behind is the reason I started doing CodeForces again (did a few competitions freshman yr), with a sole objective to become a better coder.
The problem is:
I'm able to solve first two problems in D2, but cannot seem to find solutions for the next few problems. However, the topics in C and D in D2 problem sets are topics that I'm relatively familiar with, but only after I read the editorial I understand how to apply these concepts to create an algorithm. I'm also having exceptional trouble with edge cases.
My current goal is to reach approximately 1500 by end of this year (maybe 1900 hehe). Is this too ambitious? And if so, how would you insanely smart people in Codeforces would approach this case where ur just simply not good enough to solve a problem?
Thanks for reading my rant and I would really appreciate it if y'all can give me some good insights and tips on what should I do to progress my journey of becoming a semi-proficient coder.
POST ROUND 997: CHAT I SOLVED 3 PROBLEMS OMG
I think the best advice for you right now is that you just need to solve more problems . The more you solve the better as it boosts your confidence as well as helps you experience different approaches.
1500 is surely achievable for you I believe and maybe you could go for more .
Best of luck.
Thanks!
I've been mostly doing LeetCode problems. Would changing my focus into CF problems a better alternative?
yes
Yes I think. Just keep on doing problems a bit above you rating until you are comfortable which is usually around 30(for me). Do not try to learn advanced data structures or techniques in the beginning , I reached specialist without knowing graphs , trees or dp. Applying what you already know is enough for cyan i guess.
P.S. : Learn Binary Search thoroughly
What about me?
I think you have enough knowledge to be around 1300ish. I would suggest you to re-evaluate your solution before submitting, check for all the edge cases you can think of and try to think of a counter case where your solution might not work. Do this for 5 minutes I guess so that there is no silly mistake in your code or any other issues which u can find out since the penalty for wa is 10 minutes so this is still better in lower elo as it is usually speed that determines your rank.
Hope you get green soon.
what about me
How do you solve questions when practicing? I mean what is your appraoch?
Well you could try practicing different OJ like A2OJ(however its a little old). You might have a look at TLE31 sheet . It engages a lot of topics and gives a huge understanding and it will definitely help in developing the approach newcomers often lack.
However the last step is consistency.
I think if you know the topics then solving problem should not be that big of issue, you just need to be able to use your experience of past questions you did and a little bit of being intuition and it's done. I was kinda on break since last 2 months.... i gave contest today after long... it was kind of hard to understand stuff in the beginning of contest but with time things started going well... And 1500 or 1900, it's surely not too far if you start enjoying the problems. (p.s.: Maybe i should get to 1900 too :p ...)
Auto comment: topic has been updated by Cafune (previous revision, new revision, compare).
I learned most of the topics relevant to USACO Platinum in high school, and yet I still can rarely solve any of the recent plat problems.
Topic knowledge is necessary but far from sufficient, you need to have these problem-solving structures in your brain and the only way to improve problem-solving is to solve more problems.
Colin Galen made a video where he talks about the problem-solving process in-depth and he floated an alternative to solving problems aimed at solely building the intuitive pattern recognition you often need to solve harder problems. I would watch his videos.
If you can do well in the math competitions, codeforces shouldn't be that hard to get good at. That is because math is more g-loaded than codeforces. I'd say that math competitions have a g-loading of $$$.55-.6$$$ and codeforces has a g-loading of $$$.45-.5$$$ or so. Div. 1 is probably more g-loaded than div. 2, but it is really hard to say, as div. 2 participants don't have as much experience, on average. But if we gave these problems to the general population, div. 1 would definitely be more g-loaded.
Congrats on green.