題目描述
現在是晚餐時間,而母牛們在外面分散的牧場中。
農民約翰按響了電鈴,所以她們開始向穀倉走去。
你的工作是要指出哪只母牛會最先到達穀倉(在給出的測試資料中,總會有且只有乙隻速度最快的母牛)。
在**的時候(晚餐前),每只母牛都在她自己的牧場上,一些牧場上可能沒有母牛。
每個牧場由一條條道路和乙個或多個牧場連線(可能包括自己)。
有時,兩個牧場(可能是自我相同的)之間會有超過一條道路相連。
至少有乙個牧場和穀倉之間有道路連線。
因此,所有的母牛最後都能到達穀倉,並且母牛總是走最短的 路徑。
當然,母牛能向著任意一方向前進,並且她們以相同的速度前進。
牧場被標記為』a』…『z』和』a』…『y』,在用大寫字母表示的牧場中有乙隻母牛,小寫字母中則沒有。
穀倉的標記是』z』,注意沒有母牛在穀倉中。
輸入第 1 行: 整數 p(1<= p<=10000),表示連線牧場(穀倉)的道路的數目。
第 2 …p+1行: 用空格分開的兩個字母和乙個整數:
被道路連線牧場的標記和道路的長度(1<=長度<=1000)。
輸出單獨的一行包含二個專案:
最先到達穀倉的母牛所在的牧場的標記,和這只母牛走過的路徑的長度。
樣例輸入
5
a d 6
b d 3
c e 9
d z 8
e z 3
樣例輸出
b 11
題意:
求出最先到達穀倉z奶牛並寫出最短路徑的長度;
在寫的時候需要注意的是小寫z並不是第56個節點,而是第58個原因是z-a+1==58;
其他的就按照最短路的模板來寫就可以;
#include
#include
int dp[
5001][
5001];
int dis[
10000
],book[
10000];
int inf=
99999999
;int
main()
for(i=
1; i<=
58; i++
) dis[i]
=dp[26]
[i];
memset
(book,0,
sizeof
(book));
book[26]
=1;for
(i=1
; i<=
58; i++)}
book[u]=1
;for
(v=1
; v<=
58; v++)}
} min=inf;
for(i=
1; i<
26; i++
)for
(i=1
; i<
26; i++)}
}return0;
}
USACO 奶牛電信
題目鏈結 洛谷1345 題目大意 給出乙個 n 個點 m條邊的無向圖,與 s,t 問至少刪去多少個點,使 s,t 不連通。n 100,m 600 分析 1.對於這種分離s,t 的題,考慮最大流 最小割的方法。2.然而題目要求割點,而不是割邊,怎麼辦?這就是一種經典的拆點題。3.把每個點 i 拆成兩個...
USACO 奶牛排隊
題目 給出乙個只含有1,2,3的數字序列,問最少交換多少次才能將之變為遞增數列。解 注意到只有1,2,3,我們只要將1,3交換到自己的應在位置上那麼排序就已經完成了。需要交換的有幾種,記 a x,y 表示x在應該是y的位置上的 a i 的個數,那麼我們優先交換a 1,3 和a 3,1 裡的數字,一次...
USACO 奶牛食品 網路流
題目大意 fj的奶牛們只吃各自喜歡的一些特定的食物和飲料,除此之外的其他食物和飲料一概不吃。某天fj為奶牛們精心準備了一頓美妙的飯食,但在之前忘記檢查奶牛們的選單,這樣顯然是不能不能滿足所有奶牛的要求。但是fj又不願意為此重新來做,所以他他還是想讓盡可能多的牛吃到他們喜歡的食品和飲料。fj提供了f ...