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 tagresultdp 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!

Code-is-this-fft-

also data.structures

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