POJ-2253 Frogger(一個不能用floyd的floyd的變形。结胀。)

題目大意

有兩只青蛙赞咙,分別在兩個石頭上,青蛙GG想跳到青蛙MM所在的石頭上糟港。
它有兩種跳法:
1攀操、直接跳到MM的石頭上
2、先跳到其他石頭上秸抚,再從其他石頭跳到MM所在石頭上速和;
問題是:求青蛙從GG到MM的所有路徑中最小的Frog Distance歹垫,即路徑中所GG跳的最大距離(最短路徑中的最長距離);
例如颠放,如果從GG到MM最短路徑跳的幾段為2县钥,5,6慈迈,4,則輸出的就是6省有。

這題可以用Dijkstra解決

輸入分析

2        //石頭個數(shù) (個數(shù)為0時結(jié)束程序)
0 0     //GG的坐標(biāo)
3 4     //MM的坐標(biāo)

3        //石頭個數(shù)
17 4   //GG的坐標(biāo)
19 4   //MM的坐標(biāo)
18 5   //第三行后都是空石頭的坐標(biāo)

0

輸出分析

Scenario #1
Frog Distance = 5.000   //輸出一個小數(shù)(保留三位)
//空行痒留,每個輸出后都要有
Scenario #2
Frog Distance = 1.414

代碼分析

#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <iostream>
using namespace std;
const int INF = 99999999;
int n;
float edge[222][222], dis[222];  // edge數(shù)組存圖 dis存最短距離
bool vis[222];  //判斷是否此點已查過
int x[222], y[222]; //存坐標(biāo),也可用結(jié)構(gòu)體

void ini()  //初始化
{
    memset(vis, false, sizeof(vis));
    for(int i = 1; i < n; i++) 
    { // 從1開始蠢沿,因為沒從一開始筆者挖了40發(fā)伸头。。舷蟀。各種改恤磷。。野宜。
      // 從1開始是因為dijkstra的算法要求
        dis[i] = INF;
    }
}

void dijs()
{
    vis[0] = true;  //標(biāo)記0點已查過
    int l=0; //存上一輪最小值的位置
    for (int i = 0; i < n-1; i++)
    {
        int k; //保存下標(biāo)
        float minx = INF;
        for (int j = 1; j < n; j++)
        {
            if (!vis[j])
            {
                if(max(dis[l], edge[j][l]) < dis[j]) //判斷是否為最短路徑中的最大距離
                    dis[j] = max(dis[l], edge[j][l]);//保存此最短路徑中的最大距離
                if(minx > dis[j])
                {
                    minx = dis[j]; //存點扫步,進行下一輪搜索
                    k = j;
                }
            }
        }
        if(k == 1) return; // 如果點為1,不符合匈子,直接結(jié)束
        l = k; 
        vis[k] = true;
    }
}

int main()
{
    int k = 0;
    float dx, dy, w;
    while(scanf("%d", &n)!=EOF && n!=0)
    {
        ini();
        memset(x, 0, sizeof(x)); //清空數(shù)組
        memset(y, 0, sizeof(y));
        for (int i = 0; i < n; i++)
        {
            cin >> x[i] >> y[i];
            for (int j = i-1; j >= 0; j--) //MM的坐標(biāo)在GG的坐標(biāo)后一個輸入
            {
                dx = x[i] - x[j];
                dy = y[i] - y[j];
                w = sqrt(dx*dx + dy*dy);
                edge[i][j] = edge[j][i] = w; //兩點間的距離才是每條邊的權(quán)值:犹ァ!
            }
        }
        dijs();
        printf("Scenario #%d\nFrog Distance = %.3f\n\n", ++k, dis[1]);
    }//一定要是兩個 “ \n ”;⒍亍游岳!
    return 0;
}

坑點
1、距離數(shù)組初始化的時候一定要將源點標(biāo)記為0
2其徙、權(quán)值是兩點間距離
3胚迫、每一個輸出距離之間空一行要兩個回車鍵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唾那,隨后出現(xiàn)的幾起案子访锻,更是在濱河造成了極大的恐慌,老刑警劉巖通贞,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朗若,死亡現(xiàn)場離奇詭異,居然都是意外死亡昌罩,警方通過查閱死者的電腦和手機哭懈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茎用,“玉大人遣总,你說我怎么就攤上這事睬罗。” “怎么了旭斥?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵容达,是天一觀的道長。 經(jīng)常有香客問我垂券,道長花盐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任菇爪,我火速辦了婚禮算芯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凳宙。我一直安慰自己熙揍,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布氏涩。 她就那樣靜靜地躺著届囚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪是尖。 梳的紋絲不亂的頭發(fā)上意系,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天析砸,我揣著相機與錄音昔字,去河邊找鬼。 笑死首繁,一個胖子當(dāng)著我的面吹牛作郭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弦疮,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夹攒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胁塞?” 一聲冷哼從身側(cè)響起咏尝,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啸罢,沒想到半個月后编检,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡扰才,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年允懂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衩匣。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡蕾总,死狀恐怖粥航,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情生百,我是刑警寧澤递雀,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站蚀浆,受9級特大地震影響缀程,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜市俊,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一杠输、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秕衙,春花似錦、人聲如沸僵刮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搞糕。三九已至勇吊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窍仰,已是汗流浹背汉规。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驹吮,地道東北人针史。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像碟狞,于是被迫代替她去往敵國和親啄枕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容