spfa(模板)
来源:互联网 发布:照片识别软件 编辑:程序博客网 时间:2024/06/01 12:11
题目
#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include<deque>#include<cstring>using namespace std;struct H{ int cost;//边长 int to; //指向的店};vector<H>w[10001];//动态数组int dis[100001],f[100001],d[100001];int main(){ int m,n,i,j,s; scanf("%d%d%d",&n,&m,&s); for(i=1;i<=m;i++) { int x,y,k; scanf("%d%d%d",&x,&y,&k); H e1; e1.to=y; e1.cost=k; w[x].push_back(e1); } for(i=1;i<=n;i++) dis[i]=2147483647;//最大值 f[s]=1;dis[s]=0;d[1]=s; int h=0,t=1; do { h++; int x=d[h]; f[x]=0; for(i=0;i<w[x].size();i++)//枚举与队首相连接的点,动态数组是在0开始存的 { int p=w[x][i].to; if(dis[p]>dis[x]+w[x][i].cost) { dis[p]=dis[x]+w[x][i].cost; if(f[p]==0) d[++t]=p,f[p]=1;//如果此点有更新价值,就入队; } } }while(h<t); for(i = 1;i <= n;i++) printf("%d ",dis[i]); return 0;}
错误
DI 1:我刚开始将所有的与队首相连的点都入队,导致了re也就是队爆了,其实只有这个点的最短路径值更新了,才有入队的价值;
DI 2:题目中说如果s与一个点不相连,就输出最大值,并且给出了最大值为214748364,也就是赋的初值,我却没有看到这句话,赋的初值为999999999。
mdzz我又犯了老毛病,不看题,不思考。
1 0
- spfa(模板)
- spfa(模板)
- Spfa算法 (模板源代码)
- Spfa算法 (模板源代码)
- 单源最短路SPFA(模板)
- spfa模板(待调试)
- spfa模板
- spfa 模板
- SPFA模板
- SPFA 模板
- Spfa模板
- spfa---模板
- SPFA(模板)
- spfa模板
- SPFA模板
- SPFA 模板
- SPFA模板
- SPFA模板
- asp如何判断设备?如何判断用户端是电脑还是移动设备
- ubuntu12.04 git 安装
- 下拉框回显通过<c:if>标签在页面判断
- 47. Spring Boot发送邮件
- 基于python实现一个简单的神经网络
- spfa(模板)
- git 帮助安装
- 考试报名管理
- Androif Edittext
- ubuntu curl 安装
- Android OpenGL ES 2.0 开启了深度测试但是在一定距离还是呈现透明状态
- 第五章 表单的使用
- asp get 值传递 中文出现乱码
- opencv学习笔记(十三)利用cvResize函数调整图片尺寸