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

南京机关建设网站珠海网站哪家好

南京机关建设网站,珠海网站哪家好,洛阳设计网站公司,南宁两学一做网站SPFA (Bellman-Ford 的队列优化版本)#xff1a; 1、求单源最短路径#xff0c;即每个点到源点的最短距离 2、可以处理负权边的情况 3、可以判断是否出现负权回路 #includeiostream #includevector #includecstring #includequeue using…SPFA (Bellman-Ford 的队列优化版本) 1、求单源最短路径即每个点到源点的最短距离 2、可以处理负权边的情况 3、可以判断是否出现负权回路 #includeiostream #includevector #includecstring #includequeue using namespace std; struct node{int x,y,t; }; int n,m,dis[10001],count[10001]; vectornode g[10001]; bool flag,inque[10001]; queueint q; bool spfa(int S){memset(dis,0x7f,sizeof(dis));memset(inque,false,sizeof(inque));dis[S]0;count[S];inque[S]true;q.push(S);while(!q.empty()){int uq.front();q.pop();inque[u]false;for(int i0;ig[u].size();i){int vg[u][i].y;int wg[u][i].t;if(dis[u]wdis[v]){dis[v]dis[u]w;if(inque[v]false){q.push(v);count[v];inque[v]true;if(count[v]n){return false;}}}}}return true; } int main(){cinnm;for(int i1;im;i){int x,y,v;cinxyv;g[x].push_back((node){x,y,v});}flagspfa(1);if(flagtrue){coutdis[n];}return 0; }时间复杂度O(kM)~O(NM) 常见技巧 在给平面直角坐标系构图判断连通性时仅需要将相邻的点连接先按照x坐标或y坐标排序 求一点到多点的距离可以反向连边 有时会进行拆点 Floyed: 1、求多源最短路径即点与点之间的最短距离 2、可以处理负权边的情况 3、不能出现负环 一个应用最短回路无向图有向图算d[s][s] #includeiostream using namespace std; int dist[101][101],cost[101][101],n,m,s,t,w,ans; const int maxn99999999; int main(){while(cinnm){ansmaxn;for(int i1;in;i){for(int j1;jn;j){dist[i][j]maxn;cost[i][j]-1;}}for(int i1;im;i){cinstw;dist[s][t]dist[t][s]w;cost[s][t]cost[t][s]w;}for(int k1;kn;k){for(int i1;ik;i){for(int ji1;jk;j){if(cost[i][k]-1||cost[k][j]-1)continue;ansmin(ans,dist[i][j]cost[i][k]cost[k][j]);}}//省略这段循环则为floyed基本模版 for(int i1;in;i){for(int j1;jn;j){dist[i][j]min(dist[i][j],dist[i][k]dist[k][j]);}}}if(ans!maxn)coutansendl;else coutNo solution.endl; } }时间复杂度O(N^3) Dijkstra 1、求单源最短路径 2、不能处理负权 普通版 void dijkstra() {memset(dis,127/3,sizeof(dis));//初始化 v[1]1;dis[1]0;for(int i1;in;i){int k0;for(int j1;jn;j) if(!v[j](k0||dis[j]dis[k])) kj;v[k]1;for(int j1;jn;j) if(!v[j]dis[k]a[k][j]dis[j])dis[j]dis[k]a[k][j];} }时间复杂度O(N^2) 堆优化版 int dis[N],vis[N]; priority_queuepr,vectorpr ,greaterpr que; void dijkstra(int s){memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));dis[s]0;que.push(make_pair(0,s));while(!que.empty()){pr tmpque.top();que.pop();int dtmp.first;int utmp.second;//if(d!dis[u]) continue;(等价于if(vis[u]) continue;)if(vis[u]) continue;vis[u]1;for(int ihead[u];i;iedge[i].nxt){int vedge[i].v;int wedge[i].w;if(dis[v]dis[u]w){dis[v]dis[u]w;que.push(pr(dis[v],v));}}} }其它优化博客 时间复杂度O((MN)logM) 其中M为边数N为点数 update:2021/1/23 如何用单源最短路径算法求多源最短路径问题可以出发/终止的点有多个,与Floyed求解问题不同 ---- 建立一个超级起点、超级终点将所有可能的起点、终点和超级起点、超级终点连接
http://www.zqtcl.cn/news/699639/

相关文章:

  • 免费下载建设银行官方网站自己做网站犯法吗
  • 手机网站html代码附近做广告牌的店
  • 建设和优化网站的步骤wordpress 模板 含数据库
  • 太原制作网站的工作室wordpress弹幕播放器
  • 英语网站开发菏泽做网站优化的
  • 宜昌建设网站公司做网站语言服务器 空间
  • 湖南做网站价格广州网站建设哪家便宜
  • 建筑工程素材资源网站中山做网站建设联系电话
  • 做网站关键词集团网站群建设方案
  • 网站开发有哪些课程网站开发好要租服务器吗
  • 鲜花店网站建设的规模设想网站之间的差异
  • 网站怎么在百度做推广郑州建网站
  • 机关门户网站建设顺义做网站
  • 网站开发公司东莞环球军事头条
  • 企业网站管理系统添加教程如何用python开发网页
  • 公司网站建设需要资质wordpress admin
  • 万维网网站301重定向怎么做国家城乡建设规划部网站
  • 现在的网站内容区域做多宽俄文网站开发翻译
  • 上海闵行建设局官方网站做电影网站的流程
  • 怎样做水族馆网站wordpress第三方订阅地址
  • 东莞做网站注意事项如何查网站的百度快照
  • 做资源网站需要什么郑州哪有做网站的公司
  • 不属于网站架构开发一个游戏软件多少钱
  • 电子商务网站建设 市场分析广州有哪些做网站专业的公司
  • 广州网站建设南宁厦门城健建设有限公司网站
  • 课程网站开发的研究现状网页设计制作音乐网站
  • 建设工程法律网站网站美工做专题尺寸多少?
  • 甘肃制作网站godaddy wordpress空间
  • 做淘宝客网站要多少钱心理网站模板
  • 建设手机网站经验分享网站外链建设实例