Roads with a Toll Budget — Solution & Editorial
Layered Dijkstra over the state (node, tolls-spent): each edge either keeps or increases the toll layer. The answer is the minimum over all layers at node N.
Complexity: O((C+1) · M log(N·C))
Watch out: The state space is node×(C+1); treating tolls as ordinary weight loses the budget constraint.