C--最短路 以你之姓@ 2022-07-12 08:26 124阅读 0赞 #### Problem Description #### 给出一个带权无向图,包含n个点,m条边。求出s,e的最短路。保证最短路存在。 #### Input #### 多组输入。 对于每组数据。 第一行输入n,m(1<= n && n<=5\*10^5,1 <= m && m <= 2\*10^6)。 接下来m行,每行三个整数,u,v,w,表示u,v之间有一条权值为w(w >= 0)的边。 最后输入s,e。 #### Output #### 对于每组数据输出一个整数代表答案。 #### Example Input #### 3 1 1 2 3 1 2 #### Example Output #### 3 SPFA算法: #include<stdio.h> #include<string.h> #include<stdlib.h> #define maxn 500005 #define max 0x3f3f3f3f struct node { int v; int w; int next; }map[4000005]; int queue[maxn]; int dist[maxn]; int book[maxn]; int head[maxn]; int front,rear,n,cnt; void add(int u,int v,int w) { map[cnt].v=v; map[cnt].w=w; map[cnt].next=head[u]; head[u]=cnt++; } void spfa(int s) { int i,u,v,w; for(i=0;i<=n;i++) { book[i]=0; dist[i]=max; } dist[s]=0; book[s]=1; rear=(rear+1)%maxn; queue[rear]=s; while(front!=rear) { front=(front+1)%maxn; u=queue[front]; book[u]=0; for(i=head[u];i!=-1;i=map[i].next) { v=map[i].v; w=map[i].w; if(dist[v]>dist[u]+w) { dist[v]=dist[u]+w; if(!book[v]) { rear=(rear+1)%maxn; queue[rear]=v; book[v]=1; } } } } } int main() { int i,m,u,v,w,s,e; while(scanf("%d%d",&n,&m)!=EOF) { front=rear=cnt=0; memset(head,-1,sizeof(head)); while(m--) { scanf("%d%d%d",&u,&v,&w); add(u,v,w); add(v,u,w); } scanf("%d%d",&s,&e); spfa(s); printf("%d\n",dist[e]); } return 0; }
相关 最短路 <table> <tbody> <tr> <td> <h2>最短路</h2> <strong>Time Limit: 5000/1000 MS (Java/O 向右看齐/ 2024年02月18日 22:54/ 0 赞/ 45 阅读
相关 最短路 \[hdu 1599\] ([http://acm.hdu.edu.cn/showproblem.php?pid=1599][http_acm.hdu.edu.cn_showp 红太狼/ 2022年08月04日 08:28/ 0 赞/ 166 阅读
相关 C--最短路 Problem Description 给出一个带权无向图,包含n个点,m条边。求出s,e的最短路。保证最短路存在。 Input 多组输入。 对于每组数据。 以你之姓@/ 2022年07月12日 08:26/ 0 赞/ 125 阅读
相关 最短路 队列+松弛操作 读取队头顶点u,并将队头顶点u出队(记得消除标记);将与点u相连的所有点v进行松弛操作,如果能更新估计值(即令d\[v\]变小),那么就更新,另外,如果 忘是亡心i/ 2022年06月11日 04:06/ 0 赞/ 206 阅读
相关 最短路 一下模板均已通过HDUOJ 2544 程序设计竞赛队空间和时间复杂度要求都很高,所以朴素的Dijkstra[算法][Link 1]无论时间还是空间,效率都很低。 所以,一般 淡淡的烟草味﹌/ 2022年06月09日 04:28/ 0 赞/ 242 阅读
相关 最短路径(Dijkstra)-HDU 2544-最短路 最短路径(Dijkstra)-HDU 2544-最短路 -------------------- 题目链接: [最短路][Link 1] 亦凉/ 2022年05月14日 03:38/ 0 赞/ 211 阅读
相关 最短路 最短路 典型用途:交通网络的问题——从甲地到乙地之间是否有公路连通?在有多条通路的情况下,哪一条路最短? 交通网络用有向网来表示:顶点——表示城市,弧——表示两个城 淡淡的烟草味﹌/ 2022年03月18日 12:35/ 0 赞/ 253 阅读
相关 最短路 Floyed [http://codevs.cn/problem/1077/][http_codevs.cn_problem_1077] include<cstdi ﹏ヽ暗。殇╰゛Y/ 2021年11月18日 00:30/ 0 赞/ 292 阅读
相关 最短路 复习下图论算法 1. 邻接表的Dijkstra ![ContractedBlock.gif][] ![ExpandedBlockStart.gif][] / 冷不防/ 2021年11月02日 14:24/ 0 赞/ 448 阅读
相关 HDU 2544 最短路 最短路 时间限制:5000/1000 MS(Java / Others)内存限制:32768/32768 K(Java /其他) 提交总数:106773接受提交内容: 桃扇骨/ 2021年10月18日 08:20/ 0 赞/ 320 阅读
还没有评论,来说两句吧...