这是一道标准的模板题,所以拿来作为这一段时间学习最短路的总结题目。题意很简单:有多组输入数据,每组的第一行为两个整数n, m。表示共有n个节点,m条边。接下来有m行,每行三个整数a, b, c。表示从a到b或从b到a长度为c。求从1到n的最短路。先说Floyd——这个算法看上去就是一个三重for循环...
分类:
其他好文 时间:
2015-06-02 01:42:16
阅读次数:
159
Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2 int i,j,k;3 for(k=1;k,则c[i, j, 0] =边 的长度;若i= j ,...
分类:
编程语言 时间:
2015-05-29 23:05:44
阅读次数:
193
UVA104Arbitrage(floyd最短路)
UVA104Arbitrage
题目大意:
给你两两国家之间的汇率,要求你从任何一个国家出发,身上带着1(单位不明),然后回到这个国家时,身上的钱能够> 1.01.并且如果这样的路径有多条的话,希望的到的是最短的路径,并且还有要求你输出这个最短的路径。
解题思路:
利用floyd可以求出旅游任何两个国家的可以得到的最大的...
分类:
其他好文 时间:
2015-05-28 23:20:19
阅读次数:
540
UVA10048 - Audiophobia(Floyd,最大值的最小化)
UVA10048 - Audiophobia
题目大意:给定一无向图,每条边都有一个权值,现在给你起点和终点,要求你找出起点到终点途经的边的最大值,要求这个值尽量小,到不了输出no path。
解题思路:在floyd过程中,就可以记录下来。G【i】【j】 = min(G【i】【j】, max(G【i】【k...
分类:
其他好文 时间:
2015-05-28 21:34:42
阅读次数:
119
UVA10099 - The Tourist Guide(floyd + 最小值的最大化)
UVA10099 - The Tourist Guide
题目大意:
给一无向图,图上的点代表城市,边代表路,每条边上的权值代表的是这条路上的巴士的最大乘客数,作为导游,给定起点和终点,和负责的游客,问需要的最少的趟数可以将这个游客送到终点。
解题思路:
路径上最小值的最大化。减少趟...
分类:
其他好文 时间:
2015-05-28 21:32:48
阅读次数:
147
结合得好巧妙。。。。化简后的问题是:给你两个点集A,B,求B的一个子集BB,使得BB的凸包包含A的凸包,求BB的最小大小。先特判答案为1,2的情况,答案为3的情况,我们先构造一个有向图:对于B集合中的两个点u,v,如果 所有A集合的点都在u->v的左侧,那么就连一条u->v的边。于是我们可以证明一个...
分类:
其他好文 时间:
2015-05-27 21:03:47
阅读次数:
497
题意:求两点之间路径中的最大值值最小,直接floyd#include#include#include#include#includeusing namespace std;int mp[105][105],n,m,q;void floyd(){ for(int k=1;kmp[k][j]?mp...
分类:
其他好文 时间:
2015-05-27 09:57:42
阅读次数:
118
题目描述 Description
一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人。
如果a认识b,b不一定认识a。
所有人从1到n编号,给出所有“认识”关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1。
输入描述 Input Description
第一行是n和m,表示人数和认识...
分类:
其他好文 时间:
2015-05-26 18:54:55
阅读次数:
192
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2833
题意:悟空有一个起点终点,唐僧有一个起点终点,求他俩最短路径上最多
的交点个数。
分析:首先要知道它们的最多交点一定是一段连续的路径,因为如果不是连续的
则说明存在其他最短路段,都最短而最多交点不连续矛盾,我表达力不强不信就
试试。
然后可以用floyd跑全图的最短路,并且记录任意两...
分类:
其他好文 时间:
2015-05-25 22:32:45
阅读次数:
102
题意:给你一个序列 , 给你一个mark 矩阵 , 如果mark[i][j] = 1, 则代表序列i j 可以交换,需要求出交换之后字典序最小的序列
题解:
floyd 处理一遍,然后靠前的优先选择最小的数 , 然后没了
代码:
#include
#include
#define N_node 305
int n, dis[N_node][N_node], va...
分类:
其他好文 时间:
2015-05-24 10:12:05
阅读次数:
133