UVa 10803 - Thunder Mountain

原创 2015年07月09日 09:50:38

題目:給你平面上的n個點(笛卡爾坐標),每個點之間都有連線,如果距離超過10就認為斷開;

            請你給出所有點間最短距離的最大值。

分析:最短路。多源最短路使用floyd算法。

            首先建圖,然後將大於10的邊都定義成oo,求解最短路,輸出最短路中的最大值即可。

說明:距離700題還有40題╮(╯▽╰)╭。

#include <cstring>
#include <cstdio>
#include <cmath>

const double oo = 50000;

typedef struct _point
{
	double x,y;
}point;
point  P[101];

double dist[101][101];

int main()
{
	int T,n;
	while (~scanf("%d",&T)) 
	for (int t = 1; t <= T; ++ t) {
		//input
		scanf("%d",&n);
		for (int i = 0; i < n; ++ i)
			scanf("%lf%lf",&P[i].x,&P[i].y);
		//initial
		for (int i = 0; i < n; ++ i)
		for (int j = 0; j < n; ++ j) {
			dist[i][j] = sqrt((P[i].x-P[j].x)*(P[i].x-P[j].x)+(P[i].y-P[j].y)*(P[i].y-P[j].y));
			if (dist[i][j] > 10.0)
				dist[i][j] = oo;
		}
		//floyd
		for (int k = 0; k < n; ++ k)
		for (int i = 0; i < n; ++ i)
		for (int j = 0; j < n; ++ j)
			if (dist[i][j] > dist[i][k]+dist[k][j])
				dist[i][j] = dist[i][k]+dist[k][j];
		//find max
		double Max = 0;
		for (int i = 0; i < n; ++ i)
		for (int j = 0; j < n; ++ j)
			if (Max < dist[i][j])
				Max = dist[i][j];
		//output
		printf("Case #%d:\n",t);
		if (Max == oo)
			printf("Send Kurdy\n\n");
		else printf("%.4lf\n\n",Max);
	}
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

uva 10803 - Thunder Mountain

//floyd算法//floyd算法描述:1.它是基于动规的//                     2.它是基于如下特点的:设k是i->j的中间点.那么:(1)如果从i到j的最短路径中不包含点k...

UVa10803 - Thunder Mountain

题意:坐标系内有n个点,距离小于等于10的任yi两点之间有边

uva 10803 Thunder Mountain

uva 10803 Thunder Mountain

UVA10803(最短路floyd )

题目的意思就是给出几个点,

UVa 11167 Monkeys in the Emei Mountain 最大流,区间模型,输出方案

Monkeys in the Emei Mountain

(intermediate) 网络流(时序模型+离散化) UVA 11167 - Monkeys in the Emei Mountain

Problem C Monkeys in the Emei Mountain Input: Standard Input Output: Standard Output   Xuexue is a ...

Uva-11167-Monkeys in the Emei Mountain

这个题白书上的,确实比较麻烦。想到网络流不难,但需要注意的是需要区间建...

UVA 12222 Mountain Road

题目链接:http://acm.hust.edu.cn/vjudge/problem/42128 题意:一条路两边都会有车来,但是一次只能走一个方向的,而且同向的车一起行驶的时候,路上的每个...

uva 12222——Mountain Road

题意:有一个狭窄的山路,两辆车不能同时相向而行,并且同向的车的间隔不能小于10秒,给定一些车的起始时间,求最后一辆车离开的最短时间。 思路:递推,dp(i,j,k)表示A端过了i辆车,B端过...
  • bobodem
  • bobodem
  • 2015年12月18日 20:06
  • 326

Thunder Store 的 安装方法

由于学习Ma需要,遇到一些问题无法解决,发现
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVa 10803 - Thunder Mountain
举报原因:
原因补充:

(最多只允许输入30个字)