### AshrafSustS19's blog

By AshrafSustS19, history, 5 months ago,

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

• +19

 » 5 months ago, # |   +27 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 resultdp 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
•  » » 5 months ago, # ^ |   0 May I use that script?
•  » » » 5 months ago, # ^ |   +4 Sure! Codeimport requests import json problems = requests.get("https://codeforces.com/api/problemset.problems").json() dic = {} for problem in problems['result']['problems']: if 'rating' in problem: if problem['rating'] >= 2100 and problem['rating'] <= 2400: for tag in problem['tags']: if tag in dic: dic[tag] += 1 else: dic[tag] = 1 for tag in sorted(dic, key=dic.get, reverse=True): print(tag, dic[tag]) 
 » 5 months ago, # |   0
 » 5 months ago, # |   +24 A bit offtop, but haven't you considered to start from problems in your rating range?
•  » » 5 months ago, # ^ |   +2 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.
•  » » 5 months ago, # ^ |   0 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
•  » » » 5 months ago, # ^ |   +6 yes but if you can solve 1800R~2000R problems by yourselve, won't your rating be 1800~2000 right now? (thinking)
•  » » » » 5 months ago, # ^ |   0 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.
•  » » » » » 5 months ago, # ^ |   +1 Good luck to you then!
•  » » » » » » 5 months ago, # ^ |   0 thanks
 » 5 months ago, # |   +4 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.
 » 5 months ago, # |   0 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
•  » » 5 months ago, # ^ |   0 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
•  » » » 5 months ago, # ^ |   0 try Brute force,DP,DFS,BFS,Dijkstra,Binary Indexed Tree,nCr, nPr,Mod inverse,Mod inverse,Binary Search,Bitmasks
 » 5 months ago, # |   +12 binary search.
 » 5 months ago, # |   +6 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.
•  » » 5 months ago, # ^ |   0 Thanks for the suggestions, that's what I was looking for