`

【最短路+floyd】杭电 hdu 1217 Arbitrage

阅读更多

 

/* THE PROGRAM IS MADE BY PYY */
/*----------------------------------------------------------------------------//
	Copyright (c) 2011 panyanyany All rights reserved.

	URL   : http://acm.hdu.edu.cn/showproblem.php?pid=1217
	Name  : 1217 Arbitrage

	Date  : Sunday, January 15, 2012
	Time Stage : one hour

	Result: 
5259080	2012-01-15 09:36:07	Accepted	1217
203MS	8104K	1697 B
C++	pyy


Test Data :

Review :

本来是想用dijkstra来做的,可是弄了几个小时一直A不了,只好用floyd水过了……
再次接触floyd,发现跟dijkstra不同的点,floyd用的是二维数组,而且进行比较和更新
所用的数组必须是同一个。

真心求dijkstra解法!
//----------------------------------------------------------------------------*/

#include <stdio.h>
#include <string.h>
#include <map>
#include <string>
#include <iostream>

using namespace std ;

#define min(x, y)	((x) < (y) ? (x) : (y))
#define max(x, y)	((x) > (y) ? (x) : (y))

#define INF		0x0f0f0f0f
#define MAXN	1002

bool	flag ;

int		n, m ;
double	dist[MAXN][MAXN] ;

void floyd ()
{
	int i, j, k ;

	for (k = 1 ; k <= n ; ++k)
	{
		for (i = 1 ; i <= n ; ++i)
		{
			for (j = 1 ; j <= n ; ++j)
			{
				dist[i][j] = max (dist[i][k] * dist[k][j], dist[i][j]) ;
//				printf ("dist[%d][%d] = %lf ; ", i, j, dist[i][j]) ;
				if (i == j && dist[i][j] > 1)
				{
					flag = true ;
					return ;
				}
			}
		}
	}
}

int main ()
{
	int i, j ;
	int s, e ;
	int tcase ;

	tcase = 0 ;
	while (scanf ("%d", &n), n)
	{
		map<string, int> id ;
		string str, str2 ;
		double d ;

		memset (dist, 0, sizeof (dist)) ;
		for (i = 1 ; i <= n ; ++i)
			dist[i][i] = 1 ;

		for (i = 1 ; i <= n ; ++i)
		{
			cin >> str ;
			id[str] = i ;
		}
		scanf ("%d", &m) ;
		for (i = 1 ; i <= m ; ++i)
		{
			cin >> str >> d >> str2 ;
			s = id[str] ;
			e = id[str2] ;
			dist[s][e] = d ;
//			printf ("dist[%d][%d] = %lf; \n", s, e, dist[s][e]) ;
		}
		flag = false ;
		floyd () ;
		++tcase ;
		printf ("Case %d: %s\n", tcase, (flag ? "Yes" : "No")) ;
	}
	return 0 ;
}
 

 

0
1
分享到:
评论

相关推荐

    杭电HDU ACM培训课件

    《杭电HDU ACM培训课件》是一份珍贵的学习资源,源自杭州电子科技大学的ACM竞赛培训课程。这些课件是官方论坛上分享的,旨在为那些积分不足无法获取资源或者对ACM编程竞赛感兴趣的初学者提供帮助。下面将详细阐述这...

    最短路的Floyd算法PPT课件.pptx

    Floyd算法是解决最短路问题的一种经典算法,由Floyd于1962年提出。该算法是一种权矩阵迭代算法,用于计算图中任意两节点之间的最短路。 Floyd算法的基本步骤 1. 令权矩阵D的初始值为无穷大,表示节点之间的距离为...

    最短路的Floyd算法PPT学习教案.pptx

    Floyd 算法是一种经典的图算法,用于计算任意两节点之间的最短路。该算法由美国计算机科学家 Robert Floyd 于 1962 年提出。Floyd 算法的核心思想是将图中的每个节点看作是中继站,通过不断迭代和比较来求出任意两...

    最短路——Floyd

    最短路模板 by 程序猿小周 时间复杂度:O(n^3) 适用于:求单源最短路

    MATLAB+Floyd算法程序合集

    floyd算法matlab 利用 MATLAB 实现 Floyd 算法,可对输入的邻接距离矩阵计算图中任意两点间的...优点是容易理解,可以算出任意两个节点之间最短距离的算法,且程序容易实现,缺点是复杂度达到,不适合计算大量数据。

    floyd最短路算法

    floyd最短路算法 最短路程序

    最短路的Floyd-Dijkstra-Spfa板子

    做ACM最短路问题普遍算法的Floyd-Dijkstra-Spfa板子..

    最短路问题的Floyd算法与MATLAB程序实现.pdf

    最短路问题的Floyd算法与MATLAB程序实现.pdf

    C++语言+Floyd算法+DFS等等算法实现校园导游咨询系统

    本系统采用Dev C++开发平台来进行编写和测试,用到了类、数组、函数,指针、文件的读取存储操作以及DFS算法和所有顶点对的最短路径(Floyd算法)、 图的各种遍历算法等 用无向网表示XX大学的校园景点平面图,图中顶点...

    floyd最短路算法源码

    MATLAB 实现floyd最短路算法,

    无向图求最短路的floyd算法通用matlab程序.doc

    无向图求最短路的Floyd算法是一种在图理论中的经典算法,它用于寻找图中所有节点对之间的最短路径。在计算机科学和网络优化问题中,这种算法有着广泛的应用,例如在路由选择、交通网络规划等领域。下面将详细解释...

    Bellman-Floyd、 Kruskal 、Prim算法、单源最短路算法(Dijkstra)、多段图算法、多源最短路(Floyd)、改进的作业排序

    这里,我们详细探讨标题和描述中提到的一些重要算法:Bellman-Floyd算法、Kruskal算法、Prim算法、Dijkstra算法、多段图算法、Floyd算法以及改进的作业排序算法。 1. **Bellman-Floyd算法**:这是一个用于求解图中...

    图论- 最短路- Floyd 算法.rar

    - 社交网络:分析社交网络中用户间的最短路径,可以发现最接近的关系链。 - 旅行商问题:作为求解TSP问题的预处理步骤,找到各个城市之间的最短路径。 **总结** Floyd-Warshall算法是解决图论中找到所有节点对最短...

    Dijkstra(迪杰斯特拉)+Floyd(弗洛伊德)最短路径算法C++实现

    代码直接就能用,比较简单的算法实现

    Floyd最短路算法的MATLAB程序

    Floyd最短路算法是一种在图论中用于寻找所有顶点对之间最短路径的算法,由Robert W. Floyd在1962年提出。它适用于有向或无向图,且可以处理负权边(只要没有负权环)。在MATLAB中实现Floyd算法,我们可以充分利用其...

    图论最短路Floyd

    用编好的Floyd程序求最短路径,只要画出点和路线,就可以自动计算出最短路径

    基于MATLAB实现的Floyd最短路算法+使用说明文档.zip

    基于MATLAB实现的Floyd最短路算法+使用说明文档.zip 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,...

    最短路问题Dijkstra Floyd 算法PPT学习教案.pptx

    最短路问题Dijkstra Floyd算法学习教案 一、最短路问题 最短路问题是指在一个有向网络中,从一个顶点出发,通过若干条弧,到达另一个顶点,并且使总费用最小的旅行路线。例如,在交通网中,从v1出发,通过这个交通...

Global site tag (gtag.js) - Google Analytics