当前位置: 首页 > article >正文

最短距离和路径问题 ford

题目描述

P1386 - 最短距离和路径问题 - 快乐信奥网icon-default.png?t=O83Ahttp://47.108.154.71/problem.php?id=1386

思路

ford+father数组来记路径,详见代码

代码
#include <bits/stdc++.h>
using namespace std;
int d[10010],n,m,s,k,fa[10010];
struct Theedge
{
	int start,end,data;
}edge[10010];
void dfs(int xuss)
{
	if(fa[xuss]!=0)
	{
		dfs(fa[xuss]);
	}
	cout<<xuss<<" ";
}
int main()
{
	cin>>n>>m>>s>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>edge[i].start>>edge[i].end>>edge[i].data;
	}
	for(int i=1;i<=n;i++)
	{
		d[i]=100000;
	}
	d[s]=0;
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=m;j++)
		{
			int x=edge[j].start;
			int y=edge[j].end;
			int z=edge[j].data;
			d[y]=min(d[y],d[x]+z);
			if((d[x]+z)<=d[y])
			{
				fa[y]=x;
			}
			d[x]=min(d[x],d[y]+z);
			if((d[y]+z)<=d[x])
			{
				fa[x]=y;
			}
		}
	}
	if(d[k]==100000)
	{
		cout<<"can't arrive";
	}
	else
	{
		cout<<d[k]<<endl;
		dfs(k);
	}
	return 0;
}


http://www.kler.cn/a/417328.html

相关文章:

  • GaussDB对象权限的注意事项
  • DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*
  • Word List 2
  • 【人工智能】掌握图像风格迁移:使用Python实现艺术风格的自动化迁移
  • 如何获取sql数据中时间的月份、年份(类型为date)
  • 如何理解多态,以及由此引出的抽象类和纯虚函数
  • 数据结构-图-领接表存储
  • HDLCPPP原理与配置
  • 关于最近win11不能使用ie,而不能使用考试客户端的解决方法
  • 人工智能 实验2 jupyter notebook平台 打印出分类器的正确率
  • 11 设计模式之代理模式(送资料案例)
  • 373. 查找和最小的 K 对数字
  • QTableView 实现表格及相关用法(C++)(QStandardItemModel+QItemSelectionModel)
  • [Linux] 进程间通信——匿名管道命名管道
  • 提升异步编程性能:使用 uvloop 加速你的 Python 应用
  • 云硬盘挂载到新服务器,怎么恢复数据?
  • 命令提示符窗口(CMD)控制windows操作系统
  • MySQL自启动失败(MySQL不能开机自启)解决方案_MySQL开机自启疑难杂症解决,适用Win11/Win10
  • Redis 分布式锁实现方案
  • Leecode刷题C语言之判断是否可以赢得数字游戏
  • 在CentOS7上更换为阿里云源
  • 【RK3588 Linux 5.x 内核编程】-发送信号到用户空间
  • 高级IO
  • Golang面经
  • Linux 安装scala
  • Ansible自动化一键部署单节点集群架构