__zac__'s blog

By __zac__, history, 6 years ago, In English

Hello geeks,

I'm software engineer looking also to become good at competitive programming. So how do you guys ended up to become good at this area. Is it by solving difficult problems? or you started by easy ones and getting better by time?

I mean, I saw many of you using crazy techniques to solve a non-trivial problem that can take to me days or even weeks. So I need your advise to get better and if you have suggestions for me in the way I should start thinking about problems I would really appreciate it.

I often practice using the codeforces' problemset(1300-1900). But I want to be able to solve mostly Div2 D, E, F problems.

Sorry for bothering you but any help is welcome

  • Vote: I like it
  • +8
  • Vote: I do not like it

| Write comment?
»
6 years ago, # |
  Vote: I like it +9 Vote: I do not like it

As you can see I'm not among the top, so don't take it seriously. I used to learn a lot of theory, but when it came to solving it was really hard to make connections between topics, I wouldn't understand DP's either, and became tired, stressed and frustrated for not being able to concentrate. Time passed, like a year or so, and something clicked, I could solve basic DP on my own, then harder and harder problems (about 1900 is hard for me) and then I realized I just feared problems (don't know why), and to think. So I pushed myself a little bit further everyday. Please note I already knew theory, I think there's a lot of books, editorials and videos to learn from, it just takes time. And that's my experience. I learned that some problems that are hard for X person might be easy for me, so I don't really care if it's a D, F or B problem, I just read it and give it an attempt if it seems familiar. If you are new I'd suggest to solve a bunch of ad-hoc A&B div2 problems to grasp the basic tricks, and then I'd jump to some algorithmic problems like basic DP's, graph theory and number theory.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    solving problems and learning theory are too far away. . only way to improve is keep on solving from different platform . try a question a bit high than ur level . if u can solve div2 c try div2 d or e. same like that.

    but u cant defeat petr or gennady they r legend

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Yes, I think the "solve problems" part is over simplified for us mortals. I think having a book or the right resources for learning is also good and will provide you with ideas and technique to solve in the future. But you should use both solving and learning, in my opinion.

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

    Thank you so much gfonn. I'm using the same path as you. It's not easy to be honest but hopefully it will pay off at the end. By the way I'm using CP3 book to learn more techniques

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Cool! I'm using CP3 as well. I've seen Antii's book is getting more attention nowadays, but if you mix practice and study properly, any resource will be good.

»
6 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Keep solving problem, one day the light will come.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    how gennady became so good in programming. means bestttt how

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      He solve problems.

      • »
        »
        »
        »
        6 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        even u and i also solve problem.

        • »
          »
          »
          »
          »
          6 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Why do you look at tourist and: I cannot be good at programming? That is waste of time :thonk: