- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定一个由 N 个节点(标记为 1 到 N)组成的无向图,其中节点 S 表示起始位置,任意两个节点之间的边在图中的长度为 6 个单位。问题 here .
需要计算从起始位置(节点S)到图中所有其他节点的最短距离。
解决方案:这显然是最小距离的 floyd 算法的应用。
我试过的:我试过下面的代码,它通过了 2 个测试用例,但在所有其他测试用例中都失败了。对于偷偷摸摸的 bug ,我束手无策。我只想提示解决方案。就复杂性而言,最好提供其他方法的提示来解决此问题,但我正在寻找当前代码中的偷偷摸摸的错误。
def short_paths(cost, nodes):
for i in range(1, nodes):
for j in range(1, nodes):
for k in range(1, nodes):
if cost[i][j] > cost[i][k]+cost[k][j]:
cost[i][j] = cost[i][k]+cost[k][j]
return cost
tests = int(input())
while tests:
x = input().split(" ")
nodes, edges = int(x[0]), int(x[1])
#initialize everything with infinity
dp = [[1<<31 for i in range(nodes+1)] for i in range(nodes+1)]
#distance between self is 0
for i in range(nodes+1):
dp[i][i] = 0
while edges:
p = input().split(" ")
x, y = int(p[0]), int(p[1])
#undirected graph
dp[x][y] = 6
dp[y][x] = 6
edges -= 1
src = int(input())
dp = short_paths(dp, nodes+1)
result = []
for i in range(1, nodes+1):
if src != i:
if dp[src][i] == 1<<31:
result.append("-1")
else:
result.append(dp[src][i])
print(" ".join(str(e) for e in result))
tests -= 1
最佳答案
我认为这几行有问题:
for i in range(1, nodes):
for j in range(1, nodes):
for k in range(1, nodes):
您应该首先迭代 k 以使结果正确:
尝试:
for k in range(1, nodes):
for i in range(1, nodes):
for j in range(1, nodes):
由于 DP 使用以前的结果,事实证明迭代的顺序对于获得正确的结果至关重要。
我记得顺序的方式是认为算法的第 k^th 次迭代仅使用从位置 1 到 k 的中间节点计算从 i 到 j 的最短路径。
但是,对于这个问题,这个 O(N^3) 方法会超时。更好的方法是从起始位置执行广度优先搜索,这将具有 N+M 的复杂度。
关于python - 广度优先搜索 : shortest reach hackerrank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36945409/
我收到以下错误消息: Error in "if (reached.threshold < min.reached.threshold) {" : missing value wher
我收到以下错误消息: Error in "if (reached.threshold < min.reached.threshold) {" : missing value wher
根据 react-router-dom github 页面上的推荐,我开始将 @reach/router 用于一个新项目。不幸的是,看似非常简单的用例无法正常工作。我首先尝试将 @mui Bottom
为了能够使用 Keras 作为编程工具,有时需要查看方法的源代码。我知道 Keras 中的每个功能都是公开实现的,并且可供公众访问。但不幸的是,在您没有足够的经验之前,在网络上找到代码并非易事。例如
1. 我正在使用this指南来获取要运行的nginx Web服务器镜像,并使用了以下命令 docker run -p 8888:80 nginx docker run -p 80:80 nginx 我
我正在研究缩放功能。此缩放是一个具有 100% 窗口大小的固定框和一个具有固定框宽度 200% 的图像内部。 这个缩放需要像这样工作: 当光标位于窗口中心时,图像应位于中心。 当光标在右上角时,图像应
我对三个不同的路线使用相同的组件: 有没有办法把它结合起来,就像: 最佳答案 对于到达路由器:( https://reach.tech/router/exampl
我目前正在尝试创建 CSS 波纹效果。当我缩放按钮时,波纹不会到达按钮的边缘。波纹的增长速度对于每个按钮尺寸都是相同的。这是一个普通的按钮。按下按钮时添加 CSS。 这是我的 CSS 代码:
我在 Xcode 5 中遇到这个问题,我试图将文件提交到远程 git 存储库 (BitBucket) 并 pop 一个窗口,其中显示以下错误:“无法访问存储库“project_name”。请确认存储库
在 Facebook Insights UI 上有一个名为“Reach”的部分。使用 Insights API 的 page_impressions_unique(应该带有“Reach”值)我得到的值
R 的网络连接有问题。 library(curl) req sessionInfo() R version 4.0.3 (2020-10-10) Platform: x86_64-w64-mingw
我创建了一个 Django 项目和一个虚拟环境,我在我的 Ubuntu 服务器上安装了 python。当我尝试通过键入来运行开发服务器时 $ ./manage.py runserver 0.0.0.0
我已启用 SeriLog(最新版本)自记录功能,并且看到数百条消息说 Maximum destructuring depth reached 不知道这意味着什么以及这是否是我需要担心的问题。 有谁知道
我有一个应用程序,其中有 N 个不同的布局(例如 BeforeLogin、MainLayout、SomeElseLayout、等)。 每个布局都是一个 HTML 标记组件,应包装页面组件,例如 Set
当我导航到新页面时,Reach Router 会向下滚动到标题后面的页面内容(如果内容足够长)。我假设这是为了可访问性,但对于我的应用程序来说这不是必需的,而且实际上非常不和谐。可以禁用此行为吗? 请
使用 Reach 路由器(不是 React 路由器!)我有 2 个嵌套路由: /g/123/g/123/about 其中 123 是 :groupId 参数: import React from "r
我正在使用办公室网络来学习SAP HANA,要连接到HANA系统,我必须先连接到VPN,然后只有HANA系统才能上网。我配置了一个简单的项目 XS 应用程序,但是当我尝试运行它时,它显示以下错误: h
我有以下可以正常工作的 docker-compose 文件: version: '3' services: myfrontend: image: myregistry.azurecr.io/im1
我正在计算 Action 类中搜索屏幕中的页数。我需要从 1 迭代到显示带有链接的页码,但我找不到使用 执行此操作的方法。 Java 等效代码将是,请让我知道哪里有办法在带有 struts 2.0
我通过docker在三个数据中心(DC1、DC2和DC3)中设置了三个Cassandra节点(cas1、cas2和cas3)。我想使用 Java API 在 cas1 建立 session ,但连接失
我是一名优秀的程序员,十分优秀!