【原创】最短路模板 Floyd,优先队列优化dijkstra,SPFA
来源:互联网 发布:ubuntu命令行进入桌面 编辑:程序博客网 时间:2024/05/19 03:42
天天高高兴兴打打模板
#include<cmath> #include<queue>#include<cstdio> #include<vector>#include<cstring> #include<algorithm> using namespace std; const int MAXN=100;const int MAXM=1000;const int INF=0x3f3f3f3f;int N,M;int Mix[MAXN][MAXN];//邻接矩阵存图struct edge//临界表存图{ int to,val; bool operator < (const edge & p) const { return val<p.val; }}h;vector <edge> G[MAXN];int cnt,head[MAXN];void addedge(int u,int v,int w){ h.to=v,h.val=w; G[u].push_back(h);}//多源点最短路:Floydint dis[MAXN][MAXN];void Floyd(){ //dis初值:如果i==j,dis=0,如果i,j有连边,dis=边权,否则dis=INF for(int k=1;k<=N;k++) for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);}//单源点最短路:Spfa,dijkstraint Dis[MAXN];bool inq[MAXN];int showup[MAXN];int Spfa(int s,int t){ queue<int>Q; for(int i=1;i<=N;i++) Dis[i]=(i==s)?0:INF; Q.push(s),inq[s]=1,showup[s]++; int v,p,m,sz; while(!Q.empty()) { p=Q.front(),Q.pop(),inq[p]=0, sz=G[p].size(); for(int i=0;i<sz;i++) { v=G[p][i].val,m=G[p][i].to; if(Dis[m]>v+Dis[t]) { Dis[m]=v+Dis[t]; if(!inq[m]) { Q.push(m),inq[m]=1,showup[m]++; if(showup[m]>N) return -1; } } } } if(Dis[t]==INF) return -2; return Dis[t];}void dijkstra(int s,int t){ priority_queue<edge>Q; for(int i=1;i<=N;i++) Dis[i]=(i==s)?0:INF; h.to=s,h.val=0; Q.push(h); while(!Q.empty()) { edge x=Q.top();Q.pop(); int sz=G[x.to].size(); for(int i=0;i<sz;i++) { edge y=G[x.to][i]; if(Dis[y.to]>x.val+y.val) { Dis[y.to]=x.val+y.val; h.to=y.to,h.val=Dis[y.to]; Q.push(h); } } }}int main(){}
阅读全文
0 0
- 【原创】最短路模板 Floyd,优先队列优化dijkstra,SPFA
- hdu-2544-最短路(Dijkstra + Dijkstra优先队列 + Bellman-ford + SPFA +Floyd) 纯模板题
- 最短路(floyd+bellman+dijkstra+dijkstra优先队列优化+spfa)
- 最短路模板[spfa][dijkstra+堆优化][floyd]
- 最短路模板 Dijkstra+Floyd+SPFA
- [模板]最短路 (Floyd, Spfa, Dijkstra,
- 最短路模板 floyd+dijkstra+spfa
- ACM_最短路模板(SPFA,Dijkstra,Floyd)
- usaco2.4 comehome 最短路 Floyd, Dijkstra, Dijkstra优先队列优化
- 最短路 spfa, dijkstra, Floyd
- 最短路【dijkstra】【floyd 】【spfa】
- Hdu 2544 最短路 (Dijkstra+SPFA+Floyd模板)
- 最短路模板Dijkstra Bellman-Ford Floyd SPFA
- POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA)
- 算法训练 最短路 dijkstra优先队列和spfa
- 最短路 Dijkstra+优先队列与SPFA 模版
- 最短路练习10/poj/1511 Invitation Cards ,(两次spfa),(单源最短路,优先队列优化的Dijkstra)
- 最短路spfa dijkstra模板
- HDU1232 畅通工程
- Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
- mybatis与hibernate的区别及各自应用场景
- react_basic(4)
- Redis之在Window搭建redis主从复制
- 【原创】最短路模板 Floyd,优先队列优化dijkstra,SPFA
- Java发展史
- XRecyclerView多布局
- btrace
- HDU1272 小希的迷宫
- Android_登录界面功能和实现详解
- 10月25日 c语言 输入y=(sinx-cosx)/tanx
- 购物车
- 全选删除传id