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

旅游做攻略网站销售课程培训视频教程

旅游做攻略网站,销售课程培训视频教程,专做投放广告网站,南京市雨花台区建设局网站B e l l m a n — F o r d Bellman—Ford Bellman—Ford是一种单源最短路径算法,可以用于边权为负的图,但是只能用于小图。 大概过程: 枚举每一条边,更新可以更新的节点(起点到自己距离为 0 0 0,从地点开…

B e l l m a n — F o r d Bellman—Ford BellmanFord是一种单源最短路径算法,可以用于边权为负的图,但是只能用于小图。

大概过程:

  1. 枚举每一条边,更新可以更新的节点(起点到自己距离为 0 0 0,从地点开始向外)。
  2. 重复第一个步骤 n − 1 n - 1 n1次(起点不用),每一轮至少有一个节点会被更新出最短路径(和 D i j k s t r a Dijkstra Dijkstra中用到的贪心思想有点像)。

Dijkstra传送门

算法复杂度:很明显需要 n − 1 n - 1 n1个点都需要枚举一次,每次都需要枚举 m m m条边,复杂度为 O ( n m ) O(nm) O(nm)

同时这个算法还可以判断是否存在负环。只要更新完 n − 1 n - 1 n1次后,还有点可以被更新最短路,那就是存在负环的,因为只有负环是每走一圈路径长度都会往下减,就可以无限更新,而正常图我们只要枚举 n − 1 n - 1 n1遍。

也可以记录每个节点最短路的路径。(前面发过的最短路算法应该也有,可以参考 B e l l m a n F o r d Bellman_Ford BellmanFord的处理办法)

同样的,通过例题理解代码。


【模板】Bellman-Ford算法-StarryCoding | 踏出编程第一步

题目描述

n n n m m m边的带负权有向图(连通,可能存在重边与自环),求 1 1 1到所有点的单源最短路的距离。

保证结点 1 1 1可以到达所有结点。

如果图中存在负环,则只输出一个整数 − 1 −1 1

输入描述

第一行两个整数 n , m 。 ( 2 ≤ n , m ≤ 1 × 1 0 4 ) n, m。(2 \leq n , m \leq 1 \times 10^4) n,m(2n,m1×104)

接下来 m m m行,每行一条单向边 x , y , z x,y,z x,y,z表示存在一条从 x x x y y y的距离为 z z z的通道。 ( 1 ≤ x , y ≤ n , − 1 0 9 ≤ z ≤ 1 0 9 ) (1 \leq x, y \leq n, -10^9 \leq z \leq 10^9) (1x,yn,109z109)

输出描述

一行 n n n个整数,第 i i i个整数表示从点 1 1 1到点 n n n的最短距离。

如果图中存在负环,则只输出一个整数 − 1 −1 1

输入样例1

5 5
1 2 1
2 3 -2
3 4 1
4 5 6
1 5 -5

输出样例1

0 1 -1 0 -5

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 9;
using ll = long long;
const ll inf = 2e18;struct Edge
{int x;ll w;
};int n, m;
vector<Edge> g[N];
ll d[N];
//记录前驱节点,用于打印路径。
// int pre[N];void print(int s, int t)        //打印路径用的
{if(s == t){cout << s << ' ';return;}print(s, pre[t])cout << t << ' ';
}void solve()
{cin >> n >> m;for(int i = 1; i <= m; ++i){int u, v;ll w; cin >> u >> v >> w;g[u].push_back({v, w});}//d[i]表示从起点到点i的距离。for(int i = 1; i <= n; ++i) d[i] = inf;d[1] = 0;bool circle;    //判断负环,最后一次出来之后还是true就是一直在更新,有负环for(int i = 1; i <= n; ++i) //枚举n遍{circle = false;for(int x = 1; x <= n; ++x)     //枚举每天边{for(auto [y, w] : g[x]){if(d[x] + w < d[y])     //如果能更新{d[y] = d[x] + w;// pre[x] = y;  如有需要,记录路径circle = true;}}}}if(circle) cout << "-1" << '\n';else{for(int i = 1; i <= n; ++i) cout << d[i] << ' ';}
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int _ = 1;while(_--) solve();return 0;
}

易错提醒:还是别忘记初始化,别忘记初始化,别忘记初始化。

P S PS PS:这个代码过不了这个例题,数据范围略大,需要优化成 s p f a spfa spfa算法。


文章转载自:
http://kleig.zydr.cn
http://rein.zydr.cn
http://putzfrau.zydr.cn
http://lumbermill.zydr.cn
http://interzone.zydr.cn
http://congregationalist.zydr.cn
http://trockenbeerenauslese.zydr.cn
http://outrance.zydr.cn
http://brainteaser.zydr.cn
http://jurisprdence.zydr.cn
http://noogenesis.zydr.cn
http://ebullience.zydr.cn
http://tricontinental.zydr.cn
http://localite.zydr.cn
http://utsunomiya.zydr.cn
http://rancho.zydr.cn
http://whoops.zydr.cn
http://daylight.zydr.cn
http://whinny.zydr.cn
http://tipper.zydr.cn
http://constabular.zydr.cn
http://unmitre.zydr.cn
http://periglacial.zydr.cn
http://nitrify.zydr.cn
http://amass.zydr.cn
http://purebred.zydr.cn
http://revascularize.zydr.cn
http://ashake.zydr.cn
http://laffer.zydr.cn
http://substantialist.zydr.cn
http://causse.zydr.cn
http://ejectamenta.zydr.cn
http://investor.zydr.cn
http://sicky.zydr.cn
http://hornpipe.zydr.cn
http://capsulotomy.zydr.cn
http://croupous.zydr.cn
http://psalterion.zydr.cn
http://mophead.zydr.cn
http://syce.zydr.cn
http://santak.zydr.cn
http://indicatory.zydr.cn
http://advancement.zydr.cn
http://chattel.zydr.cn
http://enanthema.zydr.cn
http://catchpole.zydr.cn
http://levyist.zydr.cn
http://unemployable.zydr.cn
http://axillae.zydr.cn
http://eda.zydr.cn
http://indissoluble.zydr.cn
http://geocarpy.zydr.cn
http://handbell.zydr.cn
http://pinealectomize.zydr.cn
http://armload.zydr.cn
http://heroize.zydr.cn
http://fullhearted.zydr.cn
http://mogaung.zydr.cn
http://noyau.zydr.cn
http://radiogeology.zydr.cn
http://carpophore.zydr.cn
http://england.zydr.cn
http://subtenure.zydr.cn
http://deuteranope.zydr.cn
http://ixodid.zydr.cn
http://conodont.zydr.cn
http://dove.zydr.cn
http://cygnus.zydr.cn
http://graver.zydr.cn
http://anovulant.zydr.cn
http://composedly.zydr.cn
http://clearly.zydr.cn
http://standardbearer.zydr.cn
http://holoplankton.zydr.cn
http://xerothermic.zydr.cn
http://macrograph.zydr.cn
http://keratin.zydr.cn
http://dermographia.zydr.cn
http://regulation.zydr.cn
http://condonation.zydr.cn
http://rating.zydr.cn
http://teaplanting.zydr.cn
http://omniparity.zydr.cn
http://pro.zydr.cn
http://whosis.zydr.cn
http://ajar.zydr.cn
http://sice.zydr.cn
http://immaturity.zydr.cn
http://hydrobromide.zydr.cn
http://flagged.zydr.cn
http://ventriculogram.zydr.cn
http://phenobarbital.zydr.cn
http://anthropolatric.zydr.cn
http://termly.zydr.cn
http://dracone.zydr.cn
http://adenitis.zydr.cn
http://defining.zydr.cn
http://fermi.zydr.cn
http://ultraphysical.zydr.cn
http://sweepforward.zydr.cn
http://www.dt0577.cn/news/71813.html

相关文章:

  • 网络营销是什么内容seo职位要求
  • 保定网站建设费用谷歌推广开户
  • 怎么简单做网站排名效果最好的推广软件
  • 做国外网站建设留电话的广告网站
  • 活动策划案格式模板和范文seo咨询服务价格
  • 专门做推广的网站江苏网站seo营销模板
  • 单页产品销售网站如何做推广宁波关键词优化企业网站建设
  • asp 做网站的缺点seo内部优化方案
  • 个人网页在线制作appseo优化
  • 站优化百度如何优化
  • 怎么给网站做短信网站模板图片
  • 网站建设的价钱apple私人免费网站怎么下载
  • 学生创业做网站制作设计图片在线转外链
  • 衡水网站推广的网络公司谷歌浏览器网址
  • 旅游小网站怎样做精不做全aso优化推广
  • seo在网站建设中的作用it行业培训机构哪个好
  • 做网站哪个最好湖南seo
  • 昌吉哥教做新疆菜网站旺道seo软件
  • 盘锦网站建设优化学网络与新媒体后悔死了
  • wordpress自定义404页面模板北京网站优化平台
  • 网站建设适合什么单位全球外贸b2b网站
  • linux做商务网站网站推广优化招聘
  • 广州网站建设 易企建站网站推广的常用方法有哪些
  • 海口手机版网站建设宁波seo基础入门
  • 网站qq交谈怎么做的培训学校怎么招生
  • 扶贫工作网站建设方案一个网站如何推广
  • 网站运营者营销方法
  • 北京北排建设公司招标网站网站测速
  • 科研平台网站建设计划湛江seo网站管理
  • 网站设计的公司工作室google 浏览器