Efficient algorithms for distributed shortest paths on power-law networks