1. 程式人生 > >2253 最短路變形 Bellman-Ford

2253 最短路變形 Bellman-Ford

傳送門

題目大意: 題意很簡單就是有一個公青蛙想要去找母青蛙, 然後水上有n個石頭, 公青蛙在第一個上, 母青蛙在第二個. 然後給出n個石頭的座標, 求一個最小的跳躍距離, 這個跳躍距離是它所有的跳躍中距離最大的. 也就是說要找一條路徑, 這個路徑不是求最短路了, 而是這個路徑中距離最大的兩個點儘量的小.

題目分析: 還是用最短路搜尋, 不過要稍微改進,這次維護的不是總路長, 而是路中每一段中的最大值. 每個點維護最小的路徑最大值即可. 演算法用Bellman-Ford寫起來方便, 時間足夠.

程式碼:

#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;
double d[205];
double mp[205][205];
int X[205], Y[205];
int n;
void Bellman_Ford()
{
	for(int i=0; i<205; ++i) d[i] = 3000000.0;
	d[0] = 0;

	for(int k=0; k<n; ++k)
		for(int i=0; i<n; ++i)
			for(int j=0; j<n; ++j)
				d[j] = min(d[j], max(d[i], mp[i][j]));
}


int main()
{
	int Case = 1;
	while(scanf("%d", &n) && n)
	{

		for(int i=0; i<n; ++i)
			scanf("%d%d", &X[i], &Y[i]);

		for(int i=0; i<n; ++i)
			for(int j=0; j<n; ++j)
				mp[i][j] = mp[j][i] = sqrt(double(X[i]-X[j])*(X[i]-X[j]) + double(Y[i]-Y[j])*(Y[i]-Y[j]));

		Bellman_Ford();
		printf("Scenario #%d\nFrog Distance = %.3f\n\n", Case++, d[1]);
	}

	return 0;
}


相關推薦

2253 短路變形 Bellman-Ford

傳送門題目大意: 題意很簡單就是有一個公青蛙想要去找母青蛙, 然後水上有n個石頭, 公青蛙在第一個上, 母青蛙在第二個. 然後給出n個石頭的座標, 求一個最小的跳躍距離, 這個跳躍距離是它所有的跳躍中距

圖上短路bellman-ford + queue優化算法)

ios style 算法 vector problem tps org oid test 例題:https://www.luogu.org/problemnew/show/3371 1 #include <cstdio> 2 #include<ios

單源短路——(Bellman-Ford演算法)超詳細

今天看了一下午的白書的Bellman-Ford演算法,由於能力有限,可能理解不到位。。。。 感覺就是遍歷所有邊更新點,如果有更新的點,繼續遍歷所有邊,直到沒有點更新就退出. #include <iostream> #include <stdio.h> #inc

短路Bellman-ford演算法

今天看啊哈演算法搞懂了Bellman-ford演算法,其實核心程式碼只有四行,還是蠻簡單的,寫了一個板子,程式碼分析容後再議 (我才不是想水部落格呢……) #include <iostream

POJ 1860(短路Bellman-Ford

題意:首先給出四個數n,m,s,v,分別表示n種貨幣,m個兌換關係,s源貨幣,源貨幣的本金v 然後給出m行,每行給出6個數beg,end,r1,c1,r2,c2,分別表示beg和end貨幣兌換的比率和手續費,end和beg貨幣兌換的比率和手續費 。問能否通過貨幣兌換使手裡

演算法專題 | 10行程式碼實現的短路演算法——Bellman-ford與SPFA

今天是演算法資料結構專題的第33篇文章,我們一起來聊聊最短路問題。 最短路問題也屬於圖論演算法之一,解決的是在一張有向圖當中點與點之間的最短距離問題。最短路演算法有很多,比較常用的有bellman-ford、dijkstra、floyd、spfa等等。這些演算法當中主要可以分成兩個分支,其中一個是bellma

POJ-2253-Frogger(短路變形

Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit

POJ 2253 Frogger【短路變形——路徑上小的大權】

/* 題意:給出一個無向圖,求一條1~2的路徑使得路徑上的最大邊權最小. 分析:dijkstra變形,將更新距離的過程改為取最大值即可. */ #include<stdio.h> #include<math.h> #include<string.h> #include&l

51nod 1445 變色DNA(短路變形

clas freopen 次數 done 最短 sstream == pac 技術分享 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445 題意: 思路: 挺好的一道題目,如果

POJ2253 Frogger —— 短路變形

minimum ces eve tun res ppr sar ant blog 題目鏈接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K To

poj 2253 短路 or 小生成樹

ide uri 浮點 value str nat empty aced i+1 Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is

浙大PAT CCCC L3-014 周遊世界 ( 短路變形 )

進行 jks none 多少 錯誤 include 情況 ide continue 題目鏈接 題意 : 中文題請點鏈接,挺復雜的... 分析 : 乍一看是個最短路,實際就真的是個最短路。如果沒有 “ 在有多條最短路徑的時候輸出換乘次數最少的” 這一條件的約束,那麽這題就

poj2253 短路變形

sta col 解題思路 最短 節點 eal rop esc memset 題目連接:http://poj.org/problem?id=2253 Description Freddy Frog is sitting on a stone in the middle of

單源短路徑---Bellman-Ford算法

分享圖片 第一步 iostream 代碼 .com style () typedef 最長路 1.Dijkstra算法的局限性 像上圖,如果用dijkstra算法的話就會出錯,因為如果從1開始,第一步dist[2] = 7, dist[3] = 5;在其中找出最小的邊是d

POJ-2263 Heavy Cargo---短路變形&&小邊的大值

ostream \n memset 就是 現在 兩個 amp 自己的 ret 題目鏈接: https://vjudge.net/problem/POJ-2263 題目大意: 有n個城市,m條連接兩個城市的道路,每條道路有自己的最大復載量。現在問從城市a到城市b,車上的最大載

CSU 1808 - 地鐵 - [短路變形]

names time ref bob href esp 地鐵站 ans main 題目鏈接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1808 Time limit: 5000 ms Memory limit: 1

短路徑(Bellman-Ford算法與Dijkstra算法)

dijk jks 結點 include 分組 負環 由於 blog 進行 前言 Dijkstra算法是處理單源最短路徑的有效算法,但它局限於邊的權值非負的情況,若圖中出現權值為負的邊,Dijkstra算法就會失效,求出的最短路徑就可能是錯的。這時候,就需要使用其他的算法來求

poj1797 Heavy Transportation(短路變形

max while oid amp == %d cos cin std 題目大意:有n個城市,m條道路,在每條道路上有一個承載量,現在要求從1到n城市最大承載量,而最大承載量就是從城市1到城市n所有通路上的最大承載量 解題思路:其實這個求最大邊可以近似於求最短路,只要修改下

帶有負權值的單源短路徑-bellman-ford演算法

https://baike.baidu.com/item/Bellman-Ford%E7%AE%97%E6%B3%95/1089090?fr=aladdin&fromid=6039406&fromtitle=bellman-ford 參考百科的c++實現版本 import java.

Frogger (短路變形-求短路上的大權)

Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but