蓝桥杯 道路和航路(SPFA算法求最短路径)
来源:互联网 发布:数学一直不好 知乎 编辑:程序博客网 时间:2024/05/12 11:22
//蓝桥杯 道路和航路 (SPFA算法求最短路径)//超时的两组数据#include<iostream>#include<cstdio>#include<string.h>#include<queue>using namespace std;const int N=30000;const int Inf=100000000;struct node{ int to; int value; int next;};int head[N];int vis[N];//int dis[N]={0};//存取距离int t,r,P,s;node p[N*6];void init(){ memset(head,-1,sizeof(head[0])*(t+2)); memset(vis,0,sizeof(vis[0])*(t+2)); int k=0; int a,b,c; for(int i=0;i<r;i++) { scanf("%d%d%d",&a,&b,&c); p[k].to=b; p[k].value=c; p[k].next=head[a]; head[a]=k++; p[k].to=a; p[k].value=c; p[k].next=head[b]; head[b]=k++; } for(int i=0;i<P;i++) { scanf("%d%d%d",&a,&b,&c); p[k].to=b; p[k].value=c; p[k].next=head[a]; head[a]=k++; }}//============关键算法===================bool relax(int pr,int to,int value){ if(dis[to]>dis[pr]+value) { dis[to]=dis[pr]+value; return true; } return false;}int SPAF(int d){ for(int i=0;i<=t;i++) { dis[i]=Inf; } vis[d]=1; dis[d]=0; queue<int> que; que.push(d); while(!que.empty()) { int pre=que.front(); que.pop(); vis[pre]=0; for(int i=head[pre];i+1;i=p[i].next) { if(relax(pre,p[i].to,p[i].value)&&!vis[p[i].to]) { que.push(p[i].to); vis[p[i].to]=1; } } }}//==========================================int main(){ scanf("%d%d%d%d",&t,&r,&P,&s); init(); SPAF(s); for(int i=1;i<=t;i++) { if(dis[i]==Inf) { printf("NO PATH\n"); } else { printf("%d\n",dis[i]); } } return 0;}
0 0
- 蓝桥杯 道路和航路(SPFA算法求最短路径)
- 蓝桥杯 - 道路和航路(SPFA)
- 蓝桥杯 最短路 道路和航路 SPFA算法
- 蓝桥杯算法训练之道路和航路 (邻接表SPFA+SLF优化)
- 算法提高 道路和航路 (SPFA的SLF优化)
- 算法提高 道路和航路 (SLF双向队列优化SPFA)
- 蓝桥杯 道路和航路
- 蓝桥杯 道路和航路
- 算法提高 道路和航路
- 算法提高 道路和航路
- 蓝桥 算法提高 道路和航路
- 蓝桥杯 算法提高 道路和航路 满分AC ,SPFA算法的SLF优化,测试数据还是比较水的,貌似没有重边
- 蓝桥杯练习题-《道路和航路》解题报告
- 道路和航路
- 道路和航路
- 道路和航路
- 道路和航路
- 道路和航路
- unsigned long整型数字转化成IP地址的实现
- <<编程珠玑>> 字符串
- CUE Splitter v1.2
- Android Application初析
- javascript - 鼠标/键盘等事件的触发
- 蓝桥杯 道路和航路(SPFA算法求最短路径)
- Ubuntu 12.04 安装配置 Tomcat 7.0服务器.
- java面试必须要知道的SQL语法,语句
- GoldenGate进程 abend,报错为OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again
- 图结构练习——最小生成树
- POJ 1573 Robot Motion
- Eclipse下Ant自动打包,混淆和签名
- 经典面试题(一)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- Android电话状态处理(区分呼入呼出)