cs_gator's blog

By cs_gator, history, 6 years ago, In English

Honestly, for a beginner, the amount of resources to practice from and the huge number of platforms available is overwhelming. So I have decided to stick to one place and keep practicing consistently. SPOJ seemed like a really good place and so did the UVa problem collection to hone skills. Atcoder contests are good but solutions are in japanese :/ , leetcode contests are relatively easier.

I want to improve my problem-solving skills and I have a year of free time, what best practices would you guys suggest ? should I pick a tag and solve different problems to learn the technique? or just pick CF div2 contests, upsolve the problems and learn by doing that? what is the fastest way to become good at this stuff?

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

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

It is very important to understand all the basic concepts.

So I'll recommend you to practice easy problems first and then gradually increase the difficulty level of the problems.

Codeforces problemset(in sorted order) or a2oj, I believe, will provide you with the problems in the suitable order.

Jumping directly to the Div 2 contest is not advisable as they require some prerequisite knowledge which you can attain after you practice enough basic problems on that topic.

Once you grasp the basic behind any topic you'll be able to build more on that.

Hope this helps.:)

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

    Well,matcoder I saw your profile just now and it seems like you started competitive programming just one year ago according to your CF profile. Can you tell me please you just practice in CF or any other site before coming CF to improve your basic concept.

    • »
      »
      »
      6 years ago, # ^ |
      Rev. 2   Vote: I like it +1 Vote: I do not like it

      Although I am a learner too, I will try to elaborate my journey till now in competitive programming.

      Actually before coming to the institute, I had no idea about programming. It's due to peer pressure that I joined codeforces and started solving easy problems. Initially I could only solve A level problems. I found this (competitive programming) very interesting and tried to carry it on by solving more and more problems. By solving quite a large number of easy problems in the problemset, I was able to cover almost every basic concept except few that required a little more guidance and which I learnt during institute courses(graphs,dp,etc.). So my key aim was to solve enough problems on a concept, so that it's base becomes strong helping to explore more techniques and new concepts.

      Also I want to add that, sometimes we get to face a problem where implementation is not easy, so we leave it and move forward. Instead, we must learn that and try to do it on our own. This technique works really well when we try to explore new things. Like it happened a lot to me, when I tried to implement binary search.

      Hope this helps:)

»
6 years ago, # |
Rev. 2   Vote: I like it +4 Vote: I do not like it

Knowledge of basic topics opens you a road to Expert. Then just solve div2 contests and pick ideas from editorials.

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

Regarding AtCoder editorials there is usually an English section at the bottom. I also used to think AtCoder only had Japanese solutions until I discovered this. Also sometimes they initially only put Japanese solutions and add English solutions later.

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

    Thanks for this info! I hadn't noticed at all :). Did you solve a lot of atcoder contest problems ?

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

      I do atcoder fairly regularly. They have good questions and the time zone makes it quite convenient for me.

»
6 years ago, # |
Rev. 2   Vote: I like it -30 Vote: I do not like it

LoOoOoOoOoL. Rofl. If you have just one year and you want to become good in this field, forget it. Your time is better spent elsewhere.

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

    Looololololo. ROFL. LMAO. HAHAHAAHAHAH. Maybe he just wants to learn something and likes programming. If all you do is troll like this, forget it. Your time is better spent elsewhere.

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

      Maybe he just wants to learn something and likes programming

      Lmao. Programming? What does programming mean to you? Writing a bunch of unreadable code? Or cranking out solutions to over simplified problems in a short time span? All these are not even traits of a programmer. They are the traits of a code monkey, or rather, a code gorilla.

      Anyway, like all competitive sport, the OP will need much more than just a year (with a lot of effort along the way) if he/she really wants to be at the top of this sport.

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

        How do you know he wants to reach the top and not just to have fun?
        "To an ignorant person, my posts are trolling. But to people who know how to read between the lines, they see reality — the real meaning of programming." Every troll is a "prophet" of his glorious ideology ("at the top of the tree of life, there is not love, there is lulz").
        But such things are way too vague to be discussed and I have better things to do than take you seriously and discuss things with you.
        Yes that means you won the discussion that was never held.

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

      If all you do is troll like this

      To an ignorant person, my posts are trolling. But to people who know how to read between the lines, they see reality — the real meaning of programming.

      Just look at who is concerned about competitive programming globally:

      https://trends.google.com/trends/explore?q=competitive%20programming

      It is quite obvious that this field is pretty much for self-entertainment and shouldn't be taken so seriously.