Poor explanation, isnt it? sqrt decomposition is advanced technique that must be explained briefly,and explained idea of it as well.
1. Is it essential to know some really advanced things? For example, once I saw usage of Link-cut tree on codechef. It was my first time seing it. I know that it will maybe be useful to learn it, but right now it would be more beneficial to practice DP or something less advanced, because I am not red on codeforces yet or medallist at Ioi and similar, wont it?
Generally, I think its better for someone to first master things that appear frequently, and then focus on advanced things that appear once in a while.Am I right?
2. In your opinion, which trees are must-learn for someone who whishes to participate on IOI and get medal, get red on CF, and similar? Till now I know segment and fenwick, but I saw tons of other data structures ( especially trees) and Im not sure when to learn them (because as I said in Q1, I think now I have more important things to learn and master).