USACO奶牛回家

2021-09-29 08:37:38 字數 1534 閱讀 9344

題目描述

現在是晚餐時間,而母牛們在外面分散的牧場中。

農民約翰按響了電鈴,所以她們開始向穀倉走去。

你的工作是要指出哪只母牛會最先到達穀倉(在給出的測試資料中,總會有且只有乙隻速度最快的母牛)。

在**的時候(晚餐前),每只母牛都在她自己的牧場上,一些牧場上可能沒有母牛。

每個牧場由一條條道路和乙個或多個牧場連線(可能包括自己)。

有時,兩個牧場(可能是自我相同的)之間會有超過一條道路相連。

至少有乙個牧場和穀倉之間有道路連線。

因此,所有的母牛最後都能到達穀倉,並且母牛總是走最短的 路徑。

當然,母牛能向著任意一方向前進,並且她們以相同的速度前進。

牧場被標記為』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 ...