hdu3790 最短路径问题(spfa)
最短路径问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 33536 Accepted Submission(s): 9835
(1<n<=1000, 0<m<100000, s != t)
#include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define INF 999999999 using namespace std; struct Node{int s,t,c,q; }edge[200000]; int N,M; int next1[200000],head[2000]; int d[2000],vis[2000],cost[2000]; int S,T,cnt;void spfa() {for(int i=0;i<=N;i++){vis[i]=0;d[i]=INF;cost[i]=INF;}vis[S]=1;d[S]=0;cost[S]=0;queue<int> q;q.push(S);while(!q.empty()){int v=q.front();q.pop();vis[v]=0;int k=head[v];while(k!=-1){int b=edge[k].t;if(d[b]>d[v]+edge[k].c){cost[b]=cost[v]+edge[k].q;d[b]=d[v]+edge[k].c;if(!vis[b]){vis[b]=1;q.push(b);}}else if(d[b]==d[v]+edge[k].c&&cost[b]>cost[v]+edge[k].q){cost[b]=cost[v]+edge[k].q;if(!vis[b]){vis[b]=1;q.push(b);}}k=next1[k];}}}void Add(int a,int b,int c,int q) {edge[cnt].s=a;edge[cnt].t=b;edge[cnt].c=c;edge[cnt].q=q;next1[cnt]=head[edge[cnt].s];head[edge[cnt].s]=cnt;cnt++; }int main() {while(scanf("%d%d",&N,&M)!=-1){if(!N&&!M) break;memset(head,-1,sizeof(head));cnt=1;for(int i=1;i<=M;i++){int a,b,c,q;scanf("%d%d%d%d",&a,&b,&c,&q);Add(a,b,c,q);Add(b,a,c,q);}scanf("%d%d",&S,&T);spfa();printf("%d %d\n",d[T],cost[T]);}return 0; }
View Code
转载于:https://www.cnblogs.com/ACRykl/p/9103805.html
hdu3790 最短路径问题(spfa)相关推荐
- HDU3790 最短路径问题【Dijkstra算法】
最短路径问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 最短路径算法——SPFA算法
在家的这几天效率还是蛮低的,总是有其他的事情耽搁,然后最近就在做搜索题,然后做了两个搜索关于最短路径的,点数少的时候之前学的佛洛依德还能派上点用处,可以点数过1000之后就容易超时了,然后看他们的题解 ...
- ssl2661-廉价最短路径【SPFA】
前言 这是一篇迟到的博客 题目 找一条最廉价的最短路径 输入输出(建议无视) Input 输入文件第一行有两个整数m和n,用一个空格隔开,其中,m是顶点数,而n是边数.接下来的n行给出所有的边及其价值 ...
- 单源最短路径(spfa,Dijkstra, bellman-ford)
目录 Dijkstra 原理:基于贪心. 为什么 Dijkstra 不能处理有负边的情况 Bellman-ford 原理:动态规划, 实质见floyd的另一篇博客 1,能找负环, 2,有变数限制的最短 ...
- hdu 3790(最短路径问题 SPFA算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 最短路径问题 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu-3790最短路径问题
Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. Input ...
- 最短路径(SPFA算法)
1200: 小明的难题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 363 Solved: 103 [Submit][Status][Web Boar ...
- 最短路径之Spfa算法
题目:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=208 #include <iostream> #incl ...
- hdu3790最短路径问题(迪杰斯特拉算法+详解+代码)
最短路径问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
最新文章
- 简析 .NET Core 构成体系
- 清华大学范玉顺互联网与大数据_清华大学范玉顺:大数据、人工智能与工业互联网...
- button,submit, image的区别 点onclick后隐藏行
- CMake Error: CMake was unable to find a build program corresponding to Ninja.
- Transition 实现轮播图
- quartz分布式集群部署并且可视化配置job定时任务
- ICCV 2017《Unsupervised Laerning of Important Objects from First-Person Videos》论文笔记
- 组装台式电脑配置清单_攒机必备!各种价位的台式电脑配置清单!
- 韩顺平 servlet 笔记 第4讲
- 买断式软件逐渐向订阅式软件发展,是不是资本想一直割韭菜?
- mysql sql语句集合
- 【机器人学】机器人运动学基础
- 吉米多维奇数学分析习题集每日一题--泰勒公式习题1377
- Android微信搜索,微信搜索APP
- jQuery下载和安装详细教程
- ios 故事板跳转
- python将多张图片合并成一张
- win10密码忘了怎么办_笔记本密码忘了怎么办
- 30分钟完成pandas入门
- C语言学习笔记——typedef
热门文章
- CSS中关于margin的理解误区
- KlayGE 4.2开发计划
- 字体在ppt中可以整体替换吗_干货,做PPT时这样选择字体,瞬间提升幻灯片档次,看完你就懂了...
- Python入门之编程与编程语言
- 单片机有什么好的网课?
- STM32单片机真的落后?
- exgcd ---- 2020牛客多校第三场:[Fraction Construction Problem:exgcd+思维题]
- 列表推导式 python原理_Python进阶-列表推导式详解总结
- python 多线程和协程结合_一文讲透 “进程、线程、协程”
- php各种api接口,PHPSAPI接口