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
I wish all the participants of tomorrow's Div.4 a positive delta, a good rating and all the best!!
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
They didn't mention bitmask dp, they were talking about bitmask problems, they are very common and range from 800-3500 difficulty.
This is true, because 2 or 3 contests ago I came across problem B specifically on the topic of bitmasks
can you provide the problem if you come across it again?
Yes
in this case well then work on them :)
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.
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
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.
understandable, wish u luck too for OI
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.
We could definitely use more of these quality blogs, rather than the spammy ones. Appreciate 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.
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).
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.