当前位置: 首页 > wzjs >正文

工作是套模板做网站优良网站

工作是套模板做网站,优良网站,烟台景明网络科技有限公司,优化网站的意思被学校课程轰炸了一周,回过头发现训练营已经要结束了,抓紧时间补完。不过算法这边也很难,感觉每天都是勉强理解在干什么的状态。 94. 城市间货物运输 I 94. 城市间货物运输 I SPFA算法,也是Bellman_ford 队列优化算法 优化原理…

被学校课程轰炸了一周,回过头发现训练营已经要结束了,抓紧时间补完。不过算法这边也很难,感觉每天都是勉强理解在干什么的状态。

94. 城市间货物运输 I

94. 城市间货物运输 I

SPFA算法,也是Bellman_ford 队列优化算法

优化原理:Bellman_ford 算法 每次都是对所有边进行松弛,其实是多做了一些无用功。只需要对上一次松弛的时候更新过的节点作为出发节点所连接的边进行松弛就够了。

其实感觉和Bellman_ford算法比较像,核心思想还是去做松弛。优化的点具体来说有两个,一是使用队列来只更新最短路径发生改变的节点,用visited来标记避免重复入队,也就是多了个全为FALSE的visited数组来进行统计,在图论题目中还是很常见的。另一个就是加入if minDist[cur] + weight < minDist[dest]:多一个判断语句去更新最短路径。

import collectionsdef main():n, m = map(int, input().strip().split())edges = [[] for _ in range(n + 1)]for _ in range(m):src, dest, weight = map(int, input().strip().split())edges[src].append([dest, weight])minDist = [float("inf")] * (n + 1)minDist[1] = 0que = collections.deque([1])visited = [False] * (n + 1)visited[1] = Truewhile que:cur = que.popleft()visited[cur] = Falsefor dest, weight in edges[cur]:if minDist[cur] != float("inf") and minDist[cur] + weight < minDist[dest]:minDist[dest] = minDist[cur] + weightif visited[dest] == False:que.append(dest)visited[dest] = Trueif minDist[-1] == float("inf"):return "unconnected"return minDist[-1]if __name__ == "__main__":print(main())

95. 城市间货物运输 II

95. 城市间货物运输 II

本题主要是判断负权回路,意思就是出现环,并且环内总值相加为负数。这种情况下就可以绕着环无限循环,让权重无限减少,所以需要在代码中判断负权回路的存在并且避免无限次循环。

仍然使用SPFA算法,可以看到代码大体一样,但是最主要的是多了一句判断   if count[next_node] == n: flag = True。Bellman-Ford 算法下能够保证每个点的最短路径最多只需要被更新 n - 1 次。但是当一个点的路径被更新了 第 n 次,说明有环且路径还在变短必有负权环,因为再更新还能变短,就证明有一个负权环,使用count计算节点进入队列的次数。

from collections import deque
from math import infdef main():n, m = [int(i) for i in input().split()]graph = [[] for _ in range(n+1)]min_dist = [inf for _ in range(n+1)]count = [0 for _ in range(n+1)]  # 记录节点加入队列的次数for _ in range(m):s, t, v = [int(i) for i in input().split()]graph[s].append([t, v])min_dist[1] = 0  # 初始化count[1] = 1d = deque([1])flag = Falsewhile d:  # 主循环cur_node = d.popleft()for next_node, val in graph[cur_node]:if min_dist[next_node] > min_dist[cur_node] + val:min_dist[next_node] = min_dist[cur_node] + valcount[next_node] += 1if next_node not in d:d.append(next_node)if count[next_node] == n:  # 如果某个点松弛了n次,说明有负回路flag = Trueif flag:breakif flag:print("circle")else:if min_dist[-1] == inf:print("unconnected")else:print(min_dist[-1])if __name__ == "__main__":main()


文章转载自:

http://UA8bkdCz.knfgn.cn
http://iO0M9qLS.knfgn.cn
http://qALynDxs.knfgn.cn
http://umW1H47o.knfgn.cn
http://TLFRauYf.knfgn.cn
http://y7xSVkRw.knfgn.cn
http://YiFKvSc9.knfgn.cn
http://tQWqqm7s.knfgn.cn
http://DlSQrwZg.knfgn.cn
http://s6NWQY1v.knfgn.cn
http://8n5J8iU7.knfgn.cn
http://SbJyOfgp.knfgn.cn
http://kTfgX1yK.knfgn.cn
http://yoImZZhc.knfgn.cn
http://XQSO6BOa.knfgn.cn
http://Ugg2y0fK.knfgn.cn
http://ylD7q8Mw.knfgn.cn
http://xmGXdjEh.knfgn.cn
http://skKZCfFV.knfgn.cn
http://kZU0R4HO.knfgn.cn
http://uusmXC8R.knfgn.cn
http://JNSMwH6y.knfgn.cn
http://jJWGWU0i.knfgn.cn
http://0gZT98gm.knfgn.cn
http://5CK6ljSy.knfgn.cn
http://yVovHfBl.knfgn.cn
http://DSlyNL6Q.knfgn.cn
http://6FmxyN3a.knfgn.cn
http://UxpfxJ0n.knfgn.cn
http://64gEwmJ0.knfgn.cn
http://www.dtcms.com/wzjs/705972.html

相关文章:

  • 朝阳专业网站建设公司重庆市建设工程信息网官网公示
  • 做什么网站比较简单网站搭建素材
  • 网站开发研究现状wordpress简洁音乐播放器
  • 拔别人的网站做网站合法吗网站幕布拍摄
  • 北京南站停车场收费标准权威发布信息
  • 吴中区建设局网站阳江招聘网的拼音
  • 门头沟青岛网站建设广西建设工程管理网站
  • 哪个网站做的win10系统好idc机房
  • 用源码建设网站品牌广告策划方案
  • 网站被降权表现海口住房与城乡建设官网
  • 给公司在百度上做网站组建 网站开发团队
  • 什么建设网站清博舆情系统
  • 福田网站建设开发团队百度知道灰色词代发收录
  • 庐山网站建设网站建设打不开
  • 如何做网站优化关键词优化受欢迎的徐州网站建设
  • 外国旅游网站建设现状番禺做网站的公司
  • 云和网站建设做网站能用微软
  • 北京网站快速排名优化网站托管代运营
  • 内江市住房和城乡建设局网站宜都网站seo
  • 哪个网站可以兼职做家教手机网站 栏目定制
  • 网站开发费怎么做账河北省建筑培训网
  • 用vs怎么做网站的导航刷会员网站怎么做
  • 天津房价seowhy友链
  • 私人接做网站违法么义乌外贸网站建设行吗
  • 铁路建设标准网站科技与人文
  • 自己的电脑做网站当服务器使用东莞高端品牌网站建设价格
  • 奥联网站建设怎么自己做免费网站
  • 网站开发要什么软件有哪些网站 流量 不够用
  • 网站建设贵苏州网站开发费用详情
  • 定制手机微网站网站宣传视频