
1 polebug 2019-06-07 08:56:23 +08:00 via Android 能不能给个有高亮有缩进的代码 这种没缩进的看都不想看... |
2 KMpAn8Obw1QhPoEP 2019-06-07 09:41:37 +08:00 via Android 你这样的代码和提问都是没有灵魂的。。。 |
3 zhangpeter 2019-06-07 10:51:18 +08:00 1 哪里的题目 2 代码高亮 |
4 wcavell OP |
5 hduwillsky 2019-06-07 13:41:08 +08:00 via iPhone @wcavell 图呢? |
6 wcavell OP |
7 fengyj 2019-06-07 13:44:22 +08:00 这代码不能格式化一下再贴过来? 用 Markdown 的 ```python ``` 格式下啊 |
8 wcavell OP @huiyifyj 我已经上传了 gist 的版本,我试试看吧 ```python import heapq import sys import math sys.setrecursionlimit(10000) INF = 999999999 class Point: def __init__(self, x, y): self.x = float(x) self.y = float(y) def getCost(p,c): x_dis = abs(p.x - c.x) y_dis = abs(p.y - c.y) cost = math.sqrt(x_dis * x_dis + y_dis * y_dis) return cost def dijkstra(G, start, endp): dis = dict((point, INF) for point in G) dis[start] = 0.00 vis = dict((point, False) for poit in G) # heap pq = [] heapq.heappush(pq, [dis[start], start]) path = dict((point, [start]) for point in G) while len(pq) > 0: v_dis, v = heapq.heappop(pq) if vis[v] == True: continue vis[v] = True p = path[v].copy() for point in G: distance = getCost(v,point) if distance > 100.00: continue new_dis = dis[v] + distance if new_dis < dis[point] and (not vis[point]): dis[point] = new_dis heapq.heappush(pq, [dis[point], point]) temp = p.copy() temp.append(point) path[point] = temp distance = dis[endp] if distance == INF: print("-1") else: print("{:.2f}".format(distance)) while True: try: numbers = input().strip().split(",") limit = int(numbers[0]) point_list = [] numbers = list(map(float, numbers)) stap = Point(numbers[1],numbers[2]) endp = Point(numbers[-2],numbers[-1]) if stap.x>limit or stap.y>limit or stap.x<0 or stap.y<0 : print("-1") elif endp.x>limit or endp.y>limit or endp.x<0 or endp.y<0 : print("-1") else: for i in range(1, len(numbers), 2): if numbers[i]<=limit and numbers[i+1]<=limit: point_list.append(Point(numbers[i], numbers[i+1])) dijkstra(point_list, point_list[0], point_list[-1]) except EOFError: break ``` |
10 wcavell OP |
11 wcavell OP 已经解决了,最后发现是一个返回值的问题,代码逻辑没有问题 |