单源最短路径-建图 903 昂贵的聘礼( 二 )

<= level[next[0]] <= up:dis[next[0]] = min(dis[next[0]], dis[k] + next[1])return dis[1]def process(self):# m为等级限制m, n = map(int, input().split())# 每一个g[i]是一个字典就相当于是一个邻接表g = [dict() for i in range(n + 1)]level = [0] * (n + 1)for i in range(1, n + 1):p, l, count= map(int, input().split())g[0][i] = plevel[i] = lfor j in range(count):idx, price = map(int, input().split())if i in g[idx]:g[idx][i] = min(g[idx][i], price)else: g[idx][i] = priceINF = 10 ** 9res = INFfor i in range(level[1] - m, level[1] + 1):res = min(res, self.dijkstra(n, i, i + m, level, g))return resif __name__ == "__main__":print(Solution().process())