【日常學習】【最短路Dijkstra】codevs1069 usaco回家 題解,dijkstracodevs1069

來源:互聯網
上載者:User

【日常學習】【最短路Dijkstra】codevs1069 usaco回家 題解,dijkstracodevs1069

來源 usaco codevs1069

題目描述  Description

現在是晚餐時間,而母牛們在外面分散的牧場中。 農民約翰按響了電鈴,所以她們開始向穀倉走去。 你的工作是要指出哪只母牛會最先到達穀倉(在給出的測試資料中,總會有且只有一隻最快的母牛)。 在擠奶的時候(晚餐前),每隻母牛都在她自己的牧場上,一些牧場上可能沒有母牛。 每個牧場由一條條道路和一個或多個牧場串連(可能包括自己)。 有時,兩個牧場(可能是字母相同的)之間會有超過一條道路相連。 至少有一個牧場和穀倉之間有道路串連。 因此,所有的母牛最後都能到達穀倉,並且母牛總是走最短的路徑。 當然,母牛能向著任意一方向前進,並且她們以相同的速度前進。 牧場被標記為'a'..'z'和'A'..'Y',在用大寫字母表示的牧場中有一隻母牛,小寫字母中則沒有。 穀倉的標記是'Z',注意沒有母牛在穀倉中。

注意'm'和'M'不是同一個牧場否則錯誤上面的意思是說:輸入資料中可能會同時存在M,m(鬱悶ing),比如

M a a m m z

輸入描述  Input Description

第 1 行: 整數 P(1<= P<=10000),表示串連牧場(穀倉)的道路的數目。

第 2 ..P+1行:  用空格分開的兩個字母和一個整數:

被道路串連牧場的標記和道路的長度(1<=長度<=1000)。

輸出描述  Output Description

單獨的一行包含二個項目:最先到達穀倉的母牛所在的牧場的標記,和這隻母牛走過的路徑的長度。

範例輸入  Sample Input

5

A d 6

B d 3

C e 9

d Z 8

e Z 3

範例輸出  Sample Output

B 11


這是比較裸的最短路 只要從Z點開始找單源最短路即可 dij和floyed都可以 關鍵在於處理

我處理的方法是小寫字母在前二十六個格子 大寫字母在後二十六個 尤其要注意讀入字元時的預先處理 由於有空格用scanf的話要這樣寫

scanf("%d\n",&p);scanf("%c %c %d\n",&c1,&c2,&k);

其他要注意的幾點是:1.無向圖2.可以重邊3.可以自環 這些在init的時候都可以解決掉

基本思路:預先處理化為數字,從最後一個點找單源最短路,在所有大寫字母中找最小的


放代碼:



——待燃犀下看,憑欄卻怕,風雷怒,魚龍慘。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.