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

怎么修改网站首页logo网页微博怎么下载视频

怎么修改网站首页logo,网页微博怎么下载视频,新闻软文广告,开发微信微商城图论 —— 最短路 —— Bellman-Ford 算法与 SPFA_通信网理论基础 分别使用bellman-ford算法和dijkstra算法的应用-CSDN博客 图解Bellman-Ford计算过程以及正确性证明 - 知乎 (zhihu.com) 语雀版本 1 概念 **适用场景#xff1a;**单源点#xff0c;可以有负边#xff0…图论 —— 最短路 —— Bellman-Ford 算法与 SPFA_通信网理论基础 分别使用bellman-ford算法和dijkstra算法的应用-CSDN博客 图解Bellman-Ford计算过程以及正确性证明 - 知乎 (zhihu.com) 语雀版本 1 概念 **适用场景**单源点可以有负边不能有负权环。 **dis(v)**源点s到v的距离。初始话dis(s)0,其余为无穷大。 **n**顶点数 **m**边数 复杂度O(mn)对边进行n-1次遍历。如果dis(v)dis(u)e(u,v)则更新dis(v)dis(u)e(u,v) **合理性**基于这个方式每次遍历起码有一个点的dis(v)是得到最优值。所以遍历n-1次就够了。 负权环环的权值和为负。如果按上述的方式遍历很有可能会导致某个点的dis值经过环之后变得更小。重复遍历后越来越小。 **判断负权环**三角不等式。无负权环时n-1次后所有dis都是最优。如果有则会导致得不到最小dis。基于这一点可以在n-1次后再遍历一次如果还存在dis(v)dis(u)e(u,v)则有负权环。 2 实现 2.1 n-1次遍历 void Bellman_Ford() {for(int i0;in;i) dis[i]INF;dis[0]0;for(int i1;in-1;i)for(int j1;jm;j)//枚举所有边{int xu[j];//边j的起点int yv[j];//边j的终点if(dis[x]INF)//松弛dis[y]min(dis[y],dis[x]w[j]);} }2.2 第n次变量——三角布不等式判断环 void Bellman_Ford() {for(int i0;in;i) dis[i]INF;dis[0]0;for(int i1;in-1;i)for(int j1;jm;j)//枚举所有边{int xu[j];//边j的起点int yv[j];//边j的终点if(dis[x]INF)//松弛dis[y]min(dis[y],dis[x]w[j]);}for(int j1;jm;j)//枚举所有边{int xu[j];//边j的起点int yv[j];//边j的终点if(dis[y]dis[x]w[j])//cout有负权环;return;} }3 SPFA-基于队列的优化 SPFAShortest Path Faster Algorithm。用队列来记录待遍历的点每次不遍历所有边只遍历和改点相邻的边。 3.1 实现 可以用双向队列把dis小的点放在队首提高遍历时更新的效率更快完成所有dis更新 struct Edge{int to,dis; }; vectorEdge edge[N]; bool vis[N]; int dis[N]; void SPFA(int s) {memset(dis, INF, sizeof(dis));memset(vis, false, sizeof(vis));vis[s] true;dis[s] 0;dequeint Q;Q.push_back(s);while (!Q.empty()) {int x Q.front();Q.pop_front();vis[x] 0;for (int i 0; i edge[x].size(); i) {int y edge[x][i].to;if (dis[y] dis[x] edge[x][i].to) {dis[y] dis[x] edge[x][i].to;if (!vis[y]) {vis[y] true;if (!Q.empty() dis[y] dis[Q.front()])//加入队首Q.push_front(y);else//加入队尾Q.push_back(y);}}}} }3.2 判断负环-判断每个点进队列的次数大于n struct Edge {int from, to;int dis;Edge() {}Edge(int from, int to, int dis) : from(from), to(to), dis(dis) {} }; struct SPFA {int n, m;Edge edges[N]; //所有的边信息int head[N]; //每个节点邻接表的头int next[N]; //每个点的下一条边int pre[N]; //最短路中的上一条弧bool vis[N];int dis[N];int cnt[N]; //进队次数void init(int n) {this-n n;this-m 0;memset(head, -1, sizeof(head));}void AddEdge(int from, int to, int dist) {edges[m] Edge(from, to, dist);next[m] head[from];head[from] m;}bool negativeCycle(int s) { //判负环memset(vis, false, sizeof(vis));memset(cnt, 0, sizeof(cnt));memset(dis, INF, sizeof(dis));dis[s] 0;queueint Q;Q.push(s);while (!Q.empty()) {int x Q.front();Q.pop();vis[x] false;for (int i head[x]; i ! -1; i next[i]) {Edge e edges[i];if (dis[e.to] dis[x] e.dis) {dis[e.to] dis[x] e.dis;pre[e.to] i;if (!vis[e.to]) {vis[e.to] true;Q.push(e.to);if (cnt[e.to] n)return true;}}}}return false;} } spfa; int main() {int n, m;while (scanf(%d%d, n, m) ! EOF) {spfa.init(n);int S;scanf(%d, S);for (int i 1; i m; i) {int x, y, dis;scanf(%d%d%d, x, y, dis);//无向边添边两次spfa.AddEdge(x, y, dis);spfa.AddEdge(y, x, dis);}spfa.negativeCycle(S);for (int i 1; i n; i)printf(%d\n, spfa.dis[i]);}return 0; }
http://www.hkea.cn/news/14410417/

相关文章:

  • 介绍产品网站制作外贸网站建设szjijie
  • 织梦做泰文网站纯静态网站 维护
  • 青岛免费建站网络推广免费下载简历模板
  • 企业网站做凭安认证有用吗wordpress 被入侵 删文章
  • 门户网站建设工作总结建筑设计培训
  • 济南做网站建设公司hanchengkeji杭州网站建设
  • 辽宁省建设工程信息网官网新网站入口官方亚马逊amz123
  • net网站开发实例wordpress博客地址
  • 自己的服务器做网站自己怎么做一元购物网站
  • 手机网站分享js代码网站优点缺点
  • 的网站建设公司哪家好网站收录不好的原因
  • 深圳商业网站建设哪家天眼查网页版
  • 天津品牌网站建设公司鲜花销售网站开发费用
  • 免费建站长平台网站推广网站注册赚佣金
  • 旅游网站的建设方式可以做360度全景图的网站
  • 石家庄+外贸网站建设公司媒介
  • 视频解析网站怎么做的编程软件哪个好用
  • 公司建设网站的公司库尔勒做网站
  • 家纺营销型网站为什么网页打不开了
  • 深圳网站的优化公司哪家好网站如何做微信支付链接
  • 深入了解网站建设免费网站新域名
  • 宜昌网站推广优化技巧seo如何挖掘关键词
  • 网站开发有哪些流程页面设计工作内容自述
  • 苏州建网站的公司哪家公司好网站建设的技术指标
  • 想做外贸去哪个网站做北京 企业建网站
  • 徐州网站制作方案如何看配色网站
  • 微信网站开发需要什么技术泰安做网站的
  • 北京企业展示网站建设网站的竞品分析怎么做
  • 合肥营销网站建设设计wordpress导航下拉
  • 做关于灯饰的网站对内部网站建设的意见和建议