Cascading cuts means that once a key of a node is decreased to be smaller then its father, it is cut from tree and joins the roots list. We now continue to check this node's ancestors - as long as we reach a marked node we cut it as well.
Even though there can be many ancestors, the amortized cost of decrease-key is O(1):
The potential function = #trees + 2*#marked_nodes. let c be the number of new trees added to the root list, then c-1 of them were marked. Also, the last call to cascading-cuts can mark an unmarked node.
So, the trees number increases by c, and the marked nodes number decreases by at least c-2. The change is the potential function is then c - 2(c-2) = c -2c + 4 = 4 - c.
The actual cost is O(c), and so the amortized cost = actual cost + change in potential = O(1)