蓝桥杯--最短路
来源:互联网 发布:sql 查询没有借书学生 编辑:程序博客网 时间:2024/06/17 14:27
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。
解题思路:
求最短路的方法有dijkstra,floyd,spfa,本题结点达到20000,边数200000,对于n^2和n^3的算法肯定要超时,所以直接选用spfa
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct data{ int to,next,w;}e[202401];int head[20501];int dis[20501];int ne;int n,m,bg,ed;int d[200001],t=0,w=1;void insert(int u,int v,int w){ ne++; e[ne].to=v; e[ne].w=w; e[ne].next=head[u]; head[u]=ne;}void spfa(){ dis[bg]=0;d[0]=bg; int q; while(t<w) { q=head[d[t]]; while(q!=0) { if(dis[e[q].to]>dis[d[t]]+e[q].w) { dis[e[q].to]=dis[d[t]]+e[q].w; d[w++]=e[q].to; } q=e[q].next; } t++; }}int main(){ memset(dis,0x3f3f3f3f,sizeof(dis)); bg=1; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int u,v,w; scanf("%d%d%d",&u,&v,&w); insert(u,v,w); } spfa(); for(int i=2;i<=n;i++) printf("%d\n",dis[i]); return 0;}
0 0
- 蓝桥杯 最短路
- 最短路 蓝桥杯
- 【蓝桥杯】最短路
- 蓝桥杯--最短路
- 蓝桥杯 最短路
- 蓝桥杯ALGO_05(最短路)
- 蓝桥杯 最短路 spfa
- 蓝桥杯 算法训练 最短路(最短路模板)
- 蓝桥杯 算法训练 最短路
- 蓝桥杯 算法训练 最短路
- 蓝桥杯--ALGO-5 最短路
- 蓝桥杯——最短路
- 蓝桥杯-算法训练-最短路
- SPFA算法 最短路 蓝桥杯
- 算法训练 最短路 蓝桥杯
- 蓝桥杯算法训练 最短路
- 最短路 & 次短路
- 最短路
- uva 10905 Children's Game
- 自定义实现TableModel
- java学习中的单向链表
- JDBC
- prim算法
- 蓝桥杯--最短路
- HDU 1754 I Hate It 线段树单点更新
- 发布3633快速接单软件V1.0
- Web 2.0
- J2SE常见问题分析
- Java正则表达式入门
- USACO5.3.4 Big Barn(bigbrn)
- unbuntu 14.04下NDK环境的搭建以及无法设置NDK路径的解决方案
- Android调用webService报错原因分析