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

做mod游戏下载网站百度竞价专员

做mod游戏下载网站,百度竞价专员,网站主题旁边的图标怎么做,旅游网站建设方案书题目:(来源于AcWing) 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。 …

题目:(来源于AcWing)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数

请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible

数据保证不存在负权回路。

输入格式

第一行包含整数 n 和 m。

接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。

输出格式

输出一个整数,表示 1 号点到 n 号点的最短距离。

如果路径不存在,则输出 impossible

数据范围

1≤n,m≤105,
图中涉及边长绝对值均不超过 10000。

输入样例:
3 3
1 2 5
2 3 -3
1 3 4
输出样例:
2

改进思路:

我们发现,只有一个节点的最短路径被更新之后,这个节点才可能被用来继续更新其出边的节点的最短路径。

代码实现:

 

#include<iostream>
#include<algorithm>
using namespace std;
#include<queue>
int n,m;
const int N = 100010;
int h[N],e[N],ne[N],w[N],idx;
int dist[N];
bool exi[N];//存储队列中是否已经有这个点了void add(int a,int b,int c)
{e[idx] = b;ne[idx] = h[a];w[idx] = c;h[a] = idx++;
}int spfa()
{queue<int> q;q.push(1);dist[1] = 0;exi[1] = true;while(q.size()){int nownode = q.front();q.pop();exi[nownode] = false;//取出该节点后更新exi数组//遍历出边for(int i = h[nownode];i!=-1;i=ne[i]){int tempnode = e[i];if(dist[tempnode] > dist[nownode]+w[i]){dist[tempnode] = dist[nownode]+w[i];if(!exi[tempnode]){q.push(tempnode);//只有本节点最短路被更新了,才需要更新这个节点的出边exi[tempnode] =true;}}}}if(dist[n] ==0x3f3f3f3f) return 0x3f3f3f3f;return dist[n];
}int main()
{fill(h,h+N,-1);//必须在存储边操作前初始化fill(dist,dist+N,0x3f3f3f3f);idx = 0;scanf("%d%d",&n,&m);while(m--){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);}int t = spfa();if(t == 0x3f3f3f3f)cout <<"impossible"<<endl;else cout << t<<endl;return 0;
}

细节:

  1.  需要记录队列中是否已经存在该节点,如果已经存在,即便其被更新,也不用再添加它。

  2. 头指针h[]要在添加边之前初始化为-1.

spfa算法判断负环:

只需要添加数组count[],记录每个节点最短路径,上的边的数量,如果边数>n,说明存在负环。

spfa算法的性能: 

  1. 时间复杂度可以为O(n+m),但最坏时退化为O(nm)。
  2. 可以处理自环、重边、负环、允许边权为负。

 

http://www.dtcms.com/wzjs/228843.html

相关文章:

  • 客户制作网站时的问题ps培训
  • windows网站模板深圳网络推广的公司
  • 怎么做网站才能不被仿冒网站营销方案模板
  • 网站短链接怎么做b2b免费发布平台
  • 你是什么做的测试网站提升神马seo关键词自然排名
  • 做一家购物网站要多少钱优化关键词的方法包括
  • 多语言网站建设价格怎样创建一个网站
  • 浙江网站建设北京seo代理计费
  • 网络营销营销型网站建设网店推广实训系统
  • 淮北矿业 集团 工程建设有限责任公司网站谷歌网站推广
  • 嘉兴营销型网站建设搜索引擎平台有哪些
  • 政府网站建设日程表什么是seo
  • 黄冈做网站公司宁波seo教程网
  • 免费商城网站建设长尾关键词爱站网
  • 网页制作怎么做多个网站惠州seo网站排名
  • 做网站推广好做么种子搜索在线 引擎
  • 小型手机网站建设多少钱搜索引擎平台
  • 关于科技园区建设文章的网站怎么推广平台
  • 企业做响应式网站好吗深圳网站优化培训
  • 港澳做愛网站搜索引擎seo如何优化
  • 企业网站建设咨询专业网站优化
  • 国家计委 建设部网站app推广注册放单平台
  • 长春网站设计策划百度我的订单app
  • 网站建设及维护协议做推广网络
  • 苏州工程造价信息网官网百度网站优化排名
  • 建设网站方法拉新推广
  • 在360怎么做网站南宁网站推广公司
  • 建设征信注册中心网站seo排名哪家公司好
  • 网站做镜像的有什么用新品推广策划方案
  • 山西网站建设 哪家好国家职业技能培训学校