I want to practice solving 2200-2400 rating problems, and I want to rely on guides as less as possible. But every time I am stuck on one problem, I have to worry about whether I am missing an observation or I just need to learn a new topic to solve this problem. I want to know and learn the topics and problem solving techniques that are common in problems of this range, so that the chances of me missing a topic when trying to solve a problem is as low as possible. What are the common topics that I need to learn
I created a script to get tags from problems in the range [2100-2400]. Here is the output
Tag — Number of problems with this tag
dp 461
data structures 385
math 342
greedy 327
graphs 259
constructive algorithms 237
dfs and similar 229
implementation 217
brute force 206
binary search 201
trees 199
sortings 154
combinatorics 130
number theory 122
bitmasks 115
strings 89
dsu 87
two pointers 85
shortest paths 70
probabilities 61
geometry 60
hashing 57
divide and conquer 55
*special 47
interactive 39
flows 36
games 34
matrices 32
graph matchings 25
string suffix structures 25
ternary search 17
fft 12
meet-in-the-middle 10
2-sat 8
chinese remainder theorem 5
expression parsing 4
May I use that script?
Sure!
A bit offtop, but haven't you considered to start from problems in your rating range?
I'm not him, but he may consider his rating range problems too boring (even though he is not consistent at them) and so he decided to master his rating range by knowning how to solve a lot harder problems.
So far, I have around 60+ 1800R, 50+ 1900R, 25+ 2000R problems. As for my regular practice, right now I would be focusing on 2000R problems. But I also want to try some high rated problems from time to time to keep things interesting
yes but if you can solve 1800R~2000R problems by yourselve, won't your rating be 1800~2000 right now? (thinking)
I would expect to get to 1600 rating. Most of these solves are actually after I hit my 1500 peak. But last contest I blundered problem A three times and got quite a smackdown, and I haven't been in the mood of contesting since then.
Good luck to you then!
thanks
Although this is good for you, if you can solve the problem with difficulty of 1900 steadily, you will not only have the level of specialist. So I still advise you not to be too anxious.
most probably you need to learn data structures like BST,heaps also graph matchings,segment tree, minimum spanning tree algorithm(Prim's and Kruskal's) fenwick tree,shortest paths and many more
I know almost all of these topics. You will actually find a lot of problems related to these topics in 1800-2000. What I am looking for are the more advanced algorithms and data structures I may need to learn. For example, Square root decomposition, centroid decomposition, heavy light decomposition etc. I came across a few problems that require these, don't know how common they are though
try Brute force,DP,DFS,BFS,Dijkstra,Binary Indexed Tree,nCr, nPr,Mod inverse,Mod inverse,Binary Search,Bitmasks
binary search.
It is more important to train your intuition than to learn random algorithms because most problems tend to require you to make observations. I am still bad at making observations for problems in the rating range you described, so at the moment I am going through atcoder problems rated between 2000~2400. Also, you should probably look into USACO guide. Knowing most of the sections in Gold, Platinum, and advanced division category should be more than enough to solve any problem rated around 2100~2400, and way beyond.
Thanks for the suggestions, that's what I was looking for