【日常学习】【floyd】codevs1077 多源最短路 题解

题目来源 codevs1077

题目描述 Description

已知n个点(n<=100),给你n*n的方阵,a[i,j]表示从第i个点到第j个点的直接距离。

现在有Q个询问,每个询问两个正整数,a和b,让你求a到b之间的最短路程。

满足a[i,j]=a[j,i];

输入描述 Input Description

第一行一个正整数n,接下来n行每行n个正整数,满足a[i,i]=0,再一行一个Q,接下来Q行,每行两个正整数a和b。

输出描述 Output Description

一共Q行,每行一个整数。

样例输入 Sample Input

3

0 1 1

1 0 3

1 3 0

1

2 3

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

n<=100,Q可能非常大。g[i][j]均>=0

请使用flyod算法

使用C/C++的同学请注意:由于输入数据较大,使用cin和cout会导致程序超时。请使用scanf与printf进行输入和输出。

这样一道题目一看就是裸的floyd,因此把他打上来作为模板。

floyd其实是动态规划的思想,每次循环相当于求选用前k个点的最短路。

直接上代码:

——师者,所以传道受业解惑也。

时间: 2024-10-16 08:27:49

【日常学习】【floyd】codevs1077 多源最短路 题解的相关文章

POJ2263&amp;ZOJ1952--Heavy Cargo【Floyd】多源最短路变形

链接:http://poj.org/problem?id=2263 题意:有n个点,m条路,每条路双向的,现在卡车从某点到另一点,卡车的承载无上限,但是马路的承载有上限,问卡车应该承载多少才不会压坏马路. poj2253和它类似,链接:http://poj.org/problem?id=2253 解题报告:Here 就是在两点之间找一条路径,使路径中权值最小的那条边的权值最大,edge数组记录当前路径中最小权值边的权值 #include<cstring> #include<string&

【日常学习】几种常用最短路短发的总结比较

学(fuxi)了一阵子简要总结一下 floyd 全跑一边 点的三次方 100以下都呛 与点有关 无关边数 (可用于求解最小环) dij裸 点的二次方 每次贪心取最小的松弛 SPFA km k期望2 与边有关 稀疏图最好 搭配边表 最坏情况可能比上面的还慢 唯一可判负环 Bellman-Ford SPFA复杂版 不考虑 dij优化 mlogn 更多与边有关 或许是稠密图的最优解决方案 简而言之 稠密的图用dij的堆优化 稀疏的SPFA 很好写 代码汇总 floyd floyd传递闭包 dij SP

POJ1125 Stockbroker Grapevine 多源最短路 Floyd

Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge in the stock market. For maximum effect, you have to

hihocoder1081(Floyd全源最短路)

题目连接:点击打开链接 解题思路: 全源最短路Floyd算法,初始化时对角线为0,其余位置为无穷远. 完整代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int n , m; const int maxn = 1111; int g[maxn][maxn]; const int INF = 10000000

最短路算法模板合集(Dijkstar,Dijkstar(优先队列优化), 多源最短路Floyd)

再开始前我们先普及一下简单的图论知识 图的保存: 1.邻接矩阵. G[maxn][maxn]; 2.邻接表 邻接表我们有两种方式 (1)vector< Node > G[maxn]; 这个是之前就定义了图的大小了,再下面使用的时候就不用对图的大小进行申请了, 但是因为是直接申请了大小 要对图进行初始化,因此可能在某些题目中这样使用的话会超时 (2)vector< vector<Node> > G; 这个是未定义大小,但是在使用之前要对其的大小内存进行申请. G.resi

【日常学习】【最短路Dijkstra】codevs1069 usaco回家 题解

来源 usaco codevs1069 题目描述 Description 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛). 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛. 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己). 有时,两个牧场(可能是字母相同的)之间会有超过一条道路相连. 至少有一个牧场和谷仓之间有道路连接. 因此

ACM学习历程——HDU5137 How Many Maos Does the Guanxi Worth(14广州10题)(单源最短路)

Problem Description "Guanxi" is a very important word in Chinese. It kind of means "relationship" or "contact". Guanxi can be based on friendship, but also can be built on money. So Chinese often say "I don't have one ma

日常学习随笔-用链表的形式实现普通二叉树的新增、查找、遍历(前、中、后序)等基础功能(侧重源码+说明)

一.二叉树 1.二叉树的概念 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree),其次序不能任意颠倒. 2.性质 (1)若二叉树的层次从0开始,则在二叉树的第i层至多有2^i个结点(i>=0): (2)高度为k的二叉树最多有2^(k+1) - 1个结点(k>=-1). (空树的高度为-1): (3)对任何一棵二叉树,如果其叶子结点(度为0)数为m, 度为2的结点数为n,

Android:日常学习笔记(10)———使用LitePal操作数据库

Android:日常学习笔记(10)---使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表.増删改查的操作.并且LitePal很"轻",jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别.目前LitePal的源码已经托管到了GitHub上. 关