You now understand sqrt decomposition:
Block decomposition splits an array into blocks for queries
Point updates are for sum, for min/max
MO's algorithm reorders offline queries to minimize boundary movement
The add/remove pattern handles queries that segment trees can't
Lazy block updates extend the technique to range modifications Sqrt decomposition isn't the fastest tool, but it's often the simplest correct solution. In contests, that matters. Next, you'll learn advanced tree structures that combine ideas from everything you've seen so far.