1. 程式人生 > >POJ 2253 Frogger【最短路變形——路徑上最小的最大權】

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

/*
題意:給出一個無向圖,求一條1~2的路徑使得路徑上的最大邊權最小.

分析:dijkstra變形,將更新距離的過程改為取最大值即可.
*/
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;

const double DNF = 2000;
const int maxn = 210;

double w[maxn][maxn];
double d[maxn];
int vis[maxn];
int n;
double ans;

struct Point{
    double x,y;
}p[maxn];

double dist(Point a, Point b)
{
    return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
}

void Dijkstra()
{
    for(int i = 1; i <= n; i++) d[i] = DNF;
    d[1] = 0;
    memset(vis,0,sizeof(vis));

    for(int i = 1; i <= n; i++)
    {
        int x;
        double m = DNF;
        for(int y = 1; y <= n; y++) if(!vis[y] && d[y] <= m) m = d[x=y];
        vis[x] = 1;
        if(ans < d[x] && d[x]!= DNF) // ans 是這條路徑上的最大權
        {
            ans = d[x];
        }
        if(x == 2) return; //走到目的地即可
        for(int y = 1; y <= n; y++) if(!vis[y])
            d[y] = min(d[y], w[x][y]); //更新未接入的點的dist
    }

}

int main()
{
    int kcase = 0;
    while(scanf("%d", &n) != EOF)
    {
        if(n == 0) break;
        for(int i = 1; i <= n; i++)
        {
            scanf("%lf%lf", &p[i].x, &p[i].y);
        }

        for(int i = 1; i <= n; i++)
        {
            w[i][i] = 0;
            for(int j = i+1; j <= n; j++)
            {
                w[i][j] = dist(p[i],p[j]);
                w[j][i] = dist(p[i],p[j]);
            }
        }

        ans = 0;
        Dijkstra();
        printf("Scenario #%d\n", ++kcase);
        printf("Frog Distance = %.3lf\n\n", ans);
    }
}


相關推薦

POJ 2253 Frogger短路變形——路徑大權

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

poj 2253 Frogger短路

 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32076

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 (單源短路變型 求路徑大邊權值的值)

題目連結 題目大意 輸入N(2≤N≤200)個點的座標,任意兩點可以互相到達,經過的距離為它們的歐式距離。現在從1號點到2號點有多條路徑,求這些路徑中最大邊權值的最小值。 分析 這題為單源最

POJ - 2253 Frogger(Floyd短路+預處理)

最短路 pri str 之間 col ace blank scanf oid 題目鏈接:http://poj.org/problem?id=2253 題意:青蛙要從點1到點2,給出各點的坐標,如果點A到點B可以通過A->C,C->B,A到B的距離可以用A-&g

POJ-2253 Frogger dijsktra查找間隔路徑

scan main struct 路徑 can 註意 sta cst () 題目鏈接:https://cn.vjudge.net/problem/POJ-2253 題意 一只Forg需要從節點1走到節點n 現要找一條各個間隔最小的路徑 問間隔最小是多少 思路 用dijskt

POJ-2253 Frogger短路

tor struct code namespace https href IV 所有 put https://vjudge.net/problem/POJ-2253 題意 公青蛙想到母青蛙那裏去,期間有許多石頭,公青蛙可以通過這些石頭跳過去。問至少要跳的最大距離,

短路變形偷懶路徑

【題目描述】 呆子打算去上自習,雖然他不願意。他來到五教門口時,發現他來遲了,事先又沒有佔位子,可能沒有位子了。 根據經驗,他知道每個小教室有位子的概率為p1,每個梯形教室有位子的概率為p2,每個扇形教室有位子得概率為p3。 由於他並不是真的想上自習,所以他並不打算到每個教

POJ 2253 Frogger ,poj3660Cow Contest(判斷絕對順序)(短路,floyed)

技術 memset lse 關系 size using onclick second win POJ 2253 Frogger題目意思就是求所有路徑中最大路徑中的最小值。 #include<iostream> #include<cstdio&g

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-2263 Heavy Cargo---短路變形&&邊的大值

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

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

POJ-1797 Heavy Transportation(短路變形

                                                Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 

2253 短路變形 Bellman-Ford

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

Poj 1797 Heavy Transportation (短路變形)

題意:給你一張圖,有n個點,m條邊。讓你求出從1點到n點的所有通路中最小邊的最大值。 題解:最短路的變形。把dijkstra中dis陣列中存的東西改成最小邊的最大值。每次找最大邊來作比較。然後更新di

poj 3635 BFS 短路變形

【解題報告】 題意比較明確。給定N(N<=1000)個點的圖,要求從S到E花費最少。 其中每個點可以加油,給出每個點的油價。一個單位距離消耗一個單位油。車輛有最大儲存油量。 可以把這道題目理解為是一個二維的最短路,其中這個“路”在這裡並不是兩點之

51nod 1445 變色DNA(短路變形

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

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

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

POJ #2253 Frogger 變種Dijkstra

aps 路徑 lose script lap 只需要 efi double log Description   問題描述:鏈接 思路   題目的意思是青蛙想從第一塊石頭跳到第二塊石頭,中間有許多墊腳石,求能跳到第二塊石頭的路上至少需要跳多遠。拿第二個樣例來說,頂點 1

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