Блог пользователя __SHERLOCK__

Автор __SHERLOCK__, история, 4 года назад, По-английски

I don't know where is my fault and why I cannot do better in Codeforces. In Summary:

I have solved 339 problems 269 A, 60 B and 9 C

188 from dif 800, 40 from dif 900, 51 from dif 1000, 27 from dif 1100, 20 from dif 1200, 9 from dif 1300

I have solved almost 95% of a2OJ <1299 ladder. Now what should be my approach to do better?

I have read many blogs on google and codeforces, but can't understand which idea will work for me. I need your help guys.

  • Проголосовать: нравится
  • +27
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

Try solving more B/C problems. You've solved mostly A, but in my opinion solving A doesn't really count, since most of them don't require use of any algorithm, thus, usually they teach you little to nothing. Focus mainly on B/C problems now, and try to aim for a difficulty which you're slightly uncomfortable with, only then will you progress.

  • »
    »
    4 года назад, # ^ |
    Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

    Thanks for your advice. I have some personal questions to you, if you have times, please reply.

    1) should I care about the number of solve? ( Actually, when I see my friends have solved more problems, it makes me Down.

    2) Should I solve problems by sorting out difficulty on the problemset ? Or Should I go to the contest page, and try to them in a virtual contest?

    I am really confused and frustrated. Sorry if I have asked any wrong or silly questions.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      1. At your stage, i believe it is somewhat necessary to solve more problems just to get speed and some intuition, but as you rise through ranks, you will quickly realise that quality > quantity. But i will leave that to you to figure out :)

      2. Why not both? :D When i started cp, i usually went to the problemset and sorted the problems according to difficulty and solved the older problems. You can solve the newer problems via VC if you like.

»
4 года назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

Do question above 1300, they will open your mind and give you wide range of ideas. Do B and C more than A.

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Do practice questions of difficulty equal to (your current rating +100/200) at any stage. You will see a quick improvement.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

One thing I learned that helped me never go below specialist is that your computer can do on the order of 10^8 operations a second. This allows you to know what time complexity the expected solution should have and therefore makes solving the problem much easier. Also learning the fast IO trick saved me from unnecessary TLEs. I learned these cp tricks and basic cp algorithms here: https://cses.fi/book/book.pdf

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Is it really 10^8 because I have learnt that it's 10^7. assuming one testcase and n=10^4 then in questions n^2 are not getting accepted. so i think it's 10^7. correct me if i'm wrong somewhere.

    • »
      »
      »
      3 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      the problem is that at the 10^8 mark the constant of the code is really important, so if your n^2 code is not optimized it will not pass for 10^4, while a code with low constant factor will

»
4 года назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

LanceTheDragonTrainer can help you.

»
4 года назад, # |
Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

Don't give up, keep practicing, enjoy the path you are on and believe that you will become pupil after some time..

I remember that I became pupil after solving about 200 A and 120 B. I explained my way of practicing here

Have a look at:

Training roadmap for newcomers

Psychological Concerns in Competitive Programming

How to come up with the solutions: techniques

Do virtual contests in div.3 rounds and atcoder beginner contests (and definitely upsolve 1 — 2 problems), and the most important thing is to not think of you rating during the contest

»
4 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

After making some research on your recent contest, it appears you have difficulties of solving A fast (Since you're taking more than 40 mins average to solve them), you should start doing VCs and try not to spend more than 20 mins to solve the slow A solving.

In case of solving only 1 problem, do a lot of B problems (Not the easy ones) and upsolve the problems you couldn't during the contest

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Read about std structures, like ordered/unordered_map/set, deque, vector and their methods, because there are a lot of problems that need to use some structures. Also read another's code or editorial if you don't know how to solve tasks and analize why didn't you find this solution (because div2B/C usually are obvious and you can come up with correct solution)

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Bro, could you please take a 1 minute to check my submissions and graph, to advise me what problems , i should solve. Thanks in advance.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      I checked your last round's submissons. For the task A usually solution is a formula or something more easier, than you was trying to submit. Also you should test your prolems properly (minimum or maximum values, or some simple cases) if you have WA and you think you fixed the bug. And I don't think that using so many defines make you code better IMHO ;) You just need some valuable practise (I don't find solving all div2B on cf valuable practise for example)

»
4 года назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

The CodeForces community is great. I really don't know who to give credit but a person created an amazing google chrome extension. I found this in a blog a couple of days ago. Its called Codeforces Practice Tracker. You can install it and view the statistics of your practice. It helps a lot. Ashishgup also wrote a blog where he has mentioned such awesome open source tools. https://codeforces.me/blog/entry/63040 One more tool which i found a few days back https://surya1231.github.io/Codeforces-contest/. It tells you all about the contests and in which contest you solved how many questions. I suggest pick up div3 contests and virtually participate.