Norp's blog

By Norp, history, 8 months ago, In English

Hello Codeforces

Today I did not solve as many problems as yesterday, since I had other things to do. I only had time in the morning and evening, during which time I solved 3-4 problems. An interesting point — I came across one problem at level 800, but despite this I came up with a solution for it only after 2 hours. Although this task almost completely spent my desire, I liked it. Also today I decided to fully analyze which topics I need to improve, and I came up with the following list:

Greedy, constructive algorithms, data structures, bitmasks, 2 pointers and binary search, brute force.

We are waiting for expert opinions on these topics in the comments.

Plans for tomorrow:

Prepare and not fail Div.4, understand the topics listed above, continue to solve problems

Till tomorrow!

  • Vote: I like it
  • -37
  • Vote: I do not like it

»
8 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I wish all the participants of tomorrow's Div.4 a positive delta, a good rating and all the best!!

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

    I'm replying to mention you, to remove bitmask, data structure, and binary search from your list, bitmask is a dp like technique that is advanced, idk it and from what I've heard from my olympiad teacher, that's something that you won't need till expert/candidate master, data structure are things like segment/fenwick, sqrt decomp etc which I believe are Candidate master plus level, and binary search just wait until specialist/pupil?

    just focus on greedy, constructive, 2p, math, brute force and implementation, and combinatorics also a bit.
    PS: knowing set, upper/lower bound is a cheat code for newbies

    • »
      »
      »
      8 months ago, # ^ |
        Vote: I like it +9 Vote: I do not like it

      They didn't mention bitmask dp, they were talking about bitmask problems, they are very common and range from 800-3500 difficulty.

      • »
        »
        »
        »
        8 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        This is true, because 2 or 3 contests ago I came across problem B specifically on the topic of bitmasks

        • »
          »
          »
          »
          »
          8 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          can you provide the problem if you come across it again?

        • »
          »
          »
          »
          »
          8 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          in this case well then work on them :)

    • »
      »
      »
      8 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I feel like learning stuff is not really a bad thing lol (unless you're doing something like learning CHT while being newbie or something), especially if you're preparing for OI. For example, I knew DSU and Fenwick Tree when I was newbie (although I didn't get many chances to use them, for obvious reasons), and it saved me some time and effort having to learn them after reaching a particular rating.

      • »
        »
        »
        »
        8 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        If you're preparing for OI and don't have much time left

        I don't think he is, if he is he should use a OI consultant/teacher, otherwise it's just wasting the question, making it disvalued

        • »
          »
          »
          »
          »
          8 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Not all countries have a good culture of olympiad training. For example, in my country, roughly the only training is a semi-active community where some past students/current students who are more experienced (who are really good, but the thing is, most of them are really busy, hence why I said "semi-active") help/mentor less experienced ones.

          • »
            »
            »
            »
            »
            »
            8 months ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            understandable, wish u luck too for OI

»
8 months ago, # |
  Vote: I like it +17 Vote: I do not like it

You should reflect in your mind when you do problem why you did/didn't solve it and how you could figure out similar insights in problem in future more. I also think it's good to come up with list of questions to ask yourself in future problems, and always revise/shorten it when you learn new things or realize different ideas come from same fundamental thinking.

However, i'd avoid thinking too much about categorizing problems into groups by solution topic at all, as standard topics can be used in various scenarios and they're more of tools than frameworks to solve. Instead, if you want to categorize put problems you remember/go over in future into groups that compare/contrast differences in questions you ask yourself to get to solution.

Your goal is to make framework where you find new small insights one by one to solve a problem with overarching setup you've never seen before, rather then sorting problems by what geeksforgeeks article they belong to and constraining yourself to only solve problems that follow such templates.

Look at "Extra advice how to think to solve problems" in my post.

  • »
    »
    8 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    We could definitely use more of these quality blogs, rather than the spammy ones. Appreciate it!

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

Bitmask is not really a topic, just a theme that operates around problems with bits. Same with data structures.

I would say 2 pointers is not really necessary to reach pupil, binary search is good enough and most times you can use std::set or std::lower_bound.

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

As some people above have pointed out, bitmasks isn't really a concrete topic. All you need for solving most bitmask problems $$$< 2000$$$ is a good understanding of bits (such as $$$1 + 2 + \cdots + 2^k < 2^{k + 1}$$$, which basically tells you that if you want to minimize / maximize a bitwise expression, going by descending order of bits is sufficient).

EDIT: I pressed the send button by mistake oops. About constructive algorithms: They're like if you get the idea, you get it in < 5 minutes, and sometimes if you don't get it, you might not get it even after a day or two. But in general if you're at rating $$$R$$$, then you can probably solve constructive problems of rating $$$\le R - 300$$$ reliably quick (why? I don't know, this is just what I observed, and despite this, I don't think constructive algorithms are trainable, maybe you can observe some patterns, but you can never be truly sure of solving a constructive algorithms problem).

»
8 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Bro level up your goal from pupil to Specialist or expert. It is not difficult to reach pupil, although i am also newbie but still make high goal. I will add you in my friend list and compete with you. And Good luck for today contest.