GustavoLopesOliveira's blog

By GustavoLopesOliveira, history, 4 weeks ago, In English

Hello, I am Gustavo from Brazil.

I would like some tips to help me improve. Currently, I can solve problems rated around 800 in Div. 4. I can solve problems A, B, and C in Div. 4 contests, but no more than that. In Div. 3, I can sometimes solve problem A, but I don’t know what to study to improve.

I’m in my first year of Computer Science and about to start my second semester. So far, I’ve only had one introductory algorithms course at university. I’ve learned about stacks, queues, sets, multisets, vectors, pairs, and algorithms like sort, upper_bound, and lower_bound. At the beginning of this year, I’ll also learn about trees.

I’ve attached an image of my solved problems. Most of them are rated 800, and I’ve solved 86 of them so far.

What should I do to get better? Any advice is welcome!

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by GustavoLopesOliveira (previous revision, new revision, compare).

»
4 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

My thoughts say that the issue is probably your problem-solving skills (no offense). 800 rated problems are the one's that you don't have to realise anything at all usually, but for problems with a bigger rating you often have to think and realise something which will make the problem solvable.

How to improve those skills? The thing with math, computer science, physics and similar is that you just have to solve a lot of problems to become better at them. I mean, you also have to know some theory but these skills are a much bigger part here. My advice is that you should not keep doing 800 rated problems because what's the point if you are already good at them? You should solve harder problems which you are not sure you can solve so you can spend time actually thinking. The more you think about this stuff, the better you will become. When those problems which are a bit harder than 800 become easy, you just repeat the process.

I hope my advice was helpful. I did not want to say anything offensive, so I'm sorry if I did, and good luck in your future!

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    It didn’t offend me, thanks for the tips! So, should I do Div. 3 and Div. 2 contests and practice problems with a rating of 900? And then, when I feel comfortable, move on to 1000 rating problems, and keep going like that?

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

I strongly suggest you use CP4 books and kattis to start your journey, rather than codeforces. The books not only teach you relevant topics for competitive programming it also has sections with questions. Each section has 2/3 starred questions (which is like most relevant questions for that topic). I have done all starred questions from chapter 1 to 7 (and like half in chapter 8 when I got tired of doing the book and migrated to codeforces. Mind you the book has 9 chapters). I think the book is a great source to learn the fundamentals. Also, codeforces questions are usually more creative, so I think it is hard to progress by just doing them, as at times you won't know whether you lack skill or just need some observations to solve a problem. This is what have worked for me.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it +2 Vote: I do not like it

    Btw I am not sponsored by them

  • »
    »
    4 weeks ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    These books?

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I can't see the image LOL. Anyway, it's the ones available here: https://cpbook.net

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        i dont know how put image here , and my english is bad.

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        i read these first or competitive programming handbook ?

        • »
          »
          »
          »
          »
          4 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          You can go straight to CP4. I didn't know about this competitive programming handbook

          • »
            »
            »
            »
            »
            »
            4 weeks ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            thanks, but after what i do ? Just contest Div.1 Div.2 ?

            • »
              »
              »
              »
              »
              »
              »
              4 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              keep doing all the contests you can while you are practicing with the book; you should notice a huge improvement by the time you finish book 1

              • »
                »
                »
                »
                »
                »
                »
                »
                4 weeks ago, # ^ |
                  Vote: I like it 0 Vote: I do not like it

                is this wine? your name is too long

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  3 weeks ago, # ^ |
                    Vote: I like it 0 Vote: I do not like it

                  It licor 43, it’s not a wine, it’s a liqueur. Yeah, even for Brazilian standards it’s quite long

  • »
    »
    4 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    I see that you study at ITA (great job btw, I can imagine how hard you had to study to pass), so you must have an advanced level of mathematics. In your opinion, do you use a lot of math, that you learned while studying to pass the exam, when solving problems here? I come from a public school and only studied for ENEM to enter the federal university of my city, so my level of mathematics is not one of the best. Would you recommend me studying/revising math to fill this gap or should I focus specially on solve problems related to CP? I'm going to start third semester in my uni this year and I'm very interested in competitive programming.

    In case you recommend me studying math, do you have any recommendations of books?

    • »
      »
      »
      3 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Math helps a lot in competitive programming; that said the topic that helps the most is number theory, which is the kind of math you see most on math competitions (such as OBM)and discrete math courses on university. To pass university I had to study a lot of hard questions in trigonometry, complex numbers, combinatorics, linear algebra (I fucking saw singular value decomposition in high school to solve some physics problems with harmonic oscillations, can you believe it??), but from all those topics I only use combinatorics in CP. so you should be fine by just learning your math curriculum + some extra number theory and solve some math competition problems.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

I would suggest trying to do harder problem for 30~60 minutes (even harder question may require longer time),

if you really can't do it, then read the editorial (or tutorial/answer).

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

I've started using this topic list to practice: https://youkn0wwho.academy/topic-list

You can try it out and see if it works for you. Each topic has resources (text and video) and a lot of exercise so that you can practice after learning that specific topic.

They have over 3000 problems of a lot of different topics.

»
4 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it
  1. Go to cses problem set.
  2. Try to solve.
  3. If can't learn the topic first form CPH book or somewhere else.
  4. Solve some easy problem on leetcode/hackerrank on that topic
  5. Go back to cses, try to solve, spend at least half and hour.
  6. if can't, read the editorial.
  7. try to solve
  8. if can't view the solution at a glance
  9. Now to try to solve again after seeing solution
  10. if can't break down the solution and practice few times
  11. Go to next question
  12. Repeat the cycle
»
4 weeks ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I'd go on timus, and just start solving the problem set, I'm pretty sure that with the first 100 problems of timus you would improve way more than just doing another 100 problems rated 800.

I think in general you need to pick better problems. 80 800rated problems are way too many problems.

»
4 weeks ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

If you basics are not strong then learn some basic algo-DSA-STL then try again.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Practice more!!