SkySurge__T's blog

By SkySurge__T, history, 19 months ago, In English

How can I become a specialist?

I have studied the following topics: - Basic Data Structures (STLs) - Number Theory (Sieve and Segmented Sieve, Factorization, Binary & Large Exponentiation, Sum of Divisors (SOD), Euclidean Algorithm, Modular Arithmetic, Big Integers, Big Mod) - Combinatorics - Algorithms (Prefix Sum, Two Pointers, Sliding Window, Binary Search)

Although I understand the concepts of these topics, I am facing difficulties in applying them to problem-solving. I am unsure how to leverage these topics effectively to approach and solve problems. Could you provide guidance on how to overcome these challenges and improve my problem-solving skills? Additionally, are there any other topics I should focus on to further develop my expertise and work towards becoming a specialist in this field?

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

| Write comment?
»
19 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

"Although I understand the concepts of these topics, I am facing difficulties in applying them to problem-solving. I am unsure how to leverage these topics effectively to approach and solve problems" For this, you can pick some problems related to those topics and solve them, read editorials until being comfortable with those topics in applying.

»
19 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

start solving 1400-1600 problems. most of the problems you've solved are <= 1200. virtual contests are also helpful. try to upsolve contest until problems C at least.

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

Consistent practice in an appropriate rating range should be enough.

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

one skill you need is deep thinking every approach you think how to build this :- ->this is my personal take every one is different this might not work for you — start solving 200+ rating problem to your current rating at start you will not be able to solve many so what i do is i read 2-3 questions and think for all solution in depth for hours and sometime day still if i am not able to solve i leave that and start a different question i do this for question i feel dont need any advance trick or data structure that i dont know

»
19 months ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

learn dp, graph, dsu, and focus on solving problems that u can't solve in Div.3 & Div.4.

»
19 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

I will probably express an unpopular opinion, but most of the problems you’ll encounter up to the Expert level are ad-hoc problems. Personally, I perceive this term as referring to problems that don’t rely on any specific data structure—there’s nothing concrete to latch onto except for general logic and observations. On my way to becoming a Specialist, I encountered dynamic programming once and binary search, at most, three times. And I probably won’t see them again until I reach Expert. Learning graphs, DSU, DP, and similar topics is interesting but impractical because reaching problems related to these topics in a contest is unlikely if you struggle with general thinking.

So, what are the ways to reach Specialist/Expert? There aren’t many:

  1. Quickly solving the first 2-3 problems (the first two within 30 minutes, the third within an hour—something like that).

  2. If you can’t solve one of them, solving the 4th or 5th instead (though let’s be honest, this path isn’t for everyone and rarely works).

  3. You can also stick to solving only Div3 and Div4 contests.

By the way, reaching Specialist is quite easy by consistently participating in Div3 and Div4. It’s better to avoid Div2 and Educational contests (especially Educational) if you’re struggling to become a Specialist. But after that, it’s up to you. There’s an opposite perspective— in russian we have "if you're afraid of wolves, don’t go into the forest", while in english it sounds like "Nothing ventured, nothing gained", meaning you should practice Div2 as well to gain a valuable experience.

The scariest part is that no one can guarantee success because structured training for solving ad-hoc problems is impossible—that’s what makes them ad-hoc. You just have to believe, keep solving problems, and keep going. That’s the only way.

TL;DR: To become a Specialist, the best training comes from Div3 and Div4. I also highly recommend ThemeCP—it’s an awesome project. And you just have to believe that it will work out because others have done it. I’ve seen people reach Specialist on their 105th contest. The key is to keep going toward your goal without giving up. Restarting is twice as hard.

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

    UPD: As I predicted, I haven't encountered DP on my way to Expert. And solved one or two problems with binary search in the last contests. Didn't solve that much of 1500+ problems during my training routine.

    I will underscore that most of the problems A, B, C in Div. 2 contests are pure ad-hoc. And you require to solve them to get to Expert. And you don't need any complex data structures or algorithms. Binary search and greedy are enough for algorithms. That's an ugly truth because, if you realize this, you also understand that only general thinking skills matter at this point. And it's much harder to train.

    Anyway, guys, don't be afraid, just go on and solve more problems (1200-1400). Problems should be challenging for you, that's the necessary and sufficient part of training in order to improve.

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

Div 4 abuse.

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

At the level of Specialist you don't need to learn algorithmic skills, you need to focus more on logical thinking based problems and need to solve the problems fast and try to minimize wrong submissions

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

you need to learn dynamic programming

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

Solve more problems :-) Good luck!