任意两点间的最短路问题(Floyd-Warshall算法)
#define _CRT_SECURE_NO_WARNINGS
/*
7 10
0 1 5
0 2 2
1 2 4
1 3 2
2 3 6
2 4 10
3 5 1
4 5 3
4 6 5
5 6 9
0 6
*/
#include <iostream>
#include <vector>
#include <utility>
#include <queue>
#include <functional>
#include <algorithm>
#include <cstdio>
using namespace std; const int maxn = + ;
const int INF = ; int d[maxn][maxn]; //d[u][v]表示边e=(u,v)的权值(不存在时设为INF,不过d[i][j]=0)
int V, E; void input();
void warshall_floyd();
void init(); void init() {
for (int i = ; i < V; i++) {
for (int j = ; j < V; j++) {
if (i == j) {
d[i][j] = ;
}
else {
d[i][j] = INF;
}
}
}
} void input()
{
int s, t, ct;
for (int i = ; i < E; i++) {
cin >> s >> t >> ct;
d[s][t] = d[t][s] = ct;
}
} void warshall_floyd()
{
for (int k = ; k < V; k++) { //考虑经过顶点k和不经过顶点k的情况
for (int i = ; i < V; i++) {
for (int j = ; j < V; j++) {
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
} int main()
{
cin >> V >> E;
init(); //必须要初始化
input();
warshall_floyd();
int st, ov;
cin >> st >> ov; //输入起点终点
cout << d[st][ov] << endl;
return ;
}
任意两点间的最短路问题(Floyd-Warshall算法)的更多相关文章
- 【算法】Floyd-Warshall算法(任意两点间的最短路问题)(判断负圈)
求解所有两点间的最短路问题叫做任意两点间的最短路问题. 可以用动态规划来解决, d[k][i][j] 表示只用前k个顶点和顶点i到顶点j的最短路径长度. 分两种情况讨论: 1.经过顶点k, d[k] ...
- 任意两点间的最短路问题(Floyd-Warshall算法)
/* 任意两点间的最短路问题(Floyd-Warshall算法) */ import java.util.Scanner; public class Main { //图的顶点数,总边数 static ...
- AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)
题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_C All Pairs Shortest Path Input ...
- Dijkstra算法:任意两点间的最短路问题 路径还原
#define _CRT_SECURE_NO_WARNINGS /* 7 10 0 1 5 0 2 2 1 2 4 1 3 2 2 3 6 2 4 10 3 5 1 4 5 3 4 6 5 5 6 9 ...
- Floyd—Warshall算法
我们用DP来求解任意两点间的最短路问题 首先定义状态:d[k][i][k]表示使用顶点1~k,i,j的情况下,i到j的最短路径 (d[0][i][j]表示只使用i和j,因此d[0][i][j] = c ...
- 图算法之Floyd-Warshall 算法-- 任意两点间最小距离
1.Floyd-Warshall 算法 给定一张图,在o(n3)时间内求出任意两点间的最小距离,并可以在求解过程中保存路径 2.Floyd-Warshall 算法概念 这是一个动态规划的算法. 将顶点 ...
- LCA - 求任意两点间的距离
There are n houses in the village and some bidirectional roads connecting them. Every day peole alwa ...
- 任意两点间最短距离floyd-warshall ---- POJ 2139 Six Degrees of Cowvin Bacon
floyd-warshall算法 通过dp思想 求任意两点之间最短距离 重复利用数组实现方式dist[i][j] i - j的最短距离 for(int k = 1; k <= N; k++) f ...
- POJ 3660 Cow Contest 任意两点之间的关系 Floyd
题意:牛之间有绝对的强弱,给出一些胜负关系,问有多少头牛可以确定其绝对排名. #include <iostream> #include <cstdio> #include &l ...
随机推荐
- Spring框架最简单的定时任务调用
package org.jeecgframework.core.timer; import org.springframework.scheduling.annotation.Scheduled; i ...
- Windows10 RedStone 1使用Bash体验
很多年前,记得在Windows Server2008的Feature里发现了Windows Subsystem For Unix,当时也不知道干啥用的,还以为是Samba协议用的呢. 今天,发现Win ...
- 使用docker-compose 大杀器来部署服务
使用docker-compose 大杀器来部署服务 上 我们都听过或者用过 docker,然而使用方式却是仅仅用手动的方式,这样去操作 docker 还是很原始. 好吧,可能在小白的眼中噼里啪啦的对着 ...
- lsof 查看端口占用的进程ID
1. nohup execute >/dev/null 2>&1 & 提交了一个后台jobs 2. 然后查看一下 哪个进程正在用 3. yum 安装lsof yum ins ...
- Fuck me 忘记改REDO 造成复制用户超级慢
. 一个用户的测试环境, 想着复制用户进行功能和单点性能测试. 但是用户数据量较大,见图 2. 发现在测试环境里面复制一个用户 大概耗时2小时20min的时间, 测试虚拟机的配置: 最开始注意到awr ...
- Android控件第5类——ViewAnimator
1.ViewAnimator,继承自FrameLayout ViewAnimator是一个基类,它继承自FrameLayout.它的子类有ViewSwitcher和ViewFlipper:ViewSw ...
- hive 远程管理
- Test Scenarios for Excel Export functionality
1 File should get exported in proper file extension2 File name for the exported excel file should be ...
- Test Scenarios for a window
1 check if default window size is correct2 check if child window size is correct3 check if there is ...
- Bootstrap媒体对象
前面的话 在Web页面或者说移动页面制作中,常常看到图文混排效果,图片居左(或居右),内容居右(或居左)排列.常常把这样的效果称为媒体对象.可以说它是一种抽象的样式,可以用来构建不同类型的组件.本文将 ...