1595 GDKOI訓練 過路費(toll)

2021-10-04 04:41:19 字數 2117 閱讀 8776

題目描述

跟所有人一樣,農夫約翰以著寧教我負天下牛,休叫天下牛負我的偉大精神,日日夜夜苦思生財之道。為了發財,他設定了一系列的規章制度,使得任何乙隻奶牛在農場中的道路行走,都要向農夫約翰上交過路費。

農場中由n(1 <= n <= 250)片草地(標號為1到n),並且有m(1 <= m <= 10000)條雙向道路連線草地a_j和b_j(1 <= a_j <= n; 1 <= b_j <= n)。奶牛們從任意一片草地出發可以抵達任意一片的草地。fj已經在連線a_j和b_j的雙向道路上設定乙個過路費l_j(1 <= l_j <= 100,000)。

可能有多條道路連線相同的兩片草地,但是不存在一條道路連線一片草地和這片草地本身。最值得慶幸的是,奶牛從任意一片草地出發,經過一系列的路徑,總是可以抵達其它的任意一片草地。

除了貪得無厭,我們都不知道該說什麼好。fj竟然在每片草地上面也設定了乙個過路費c_i(1 <= c_i <= 100000)。從一片草地到另外一片草地的費用,是經過的所有道路的過路費之和,加上經過的所有的草地(包括起點和終點)的過路費的最大值。

任勞任怨的牛們希望去調查一下她們應該選擇那一條路徑。她們要你寫乙個程式,接受k(1<= k <= 10,000)個問題並且輸出每個詢問對應的最小花費。第i個問題包含兩個數字s_i和t_i(1 <= s_i <= n; 1 <= t_i <= n; s_i != t_i),表示起點和終點的草地。

考慮下面這個包含5片草地的樣例影象:

從草地1到草地3的道路的「邊過路費」為3,草地2的「點過路費」為5。

要從草地1走到草地4,可以從草地1走到草地3再走到草地5最後抵達草地4。如果這麼走的話,需要的「邊過路費」為2+1+1=4,需要的點過路費為4(草地5的點過路費最大),所以總的花費為4+4=8。

而從草地2到草地3的最佳路徑是從草地2出發,抵達草地5,最後到達草地3。這麼走的話,邊過路費為3+1=4,點過路費為5,總花費為4+5=9。

輸入第1行: 三個空格隔開的整數: n, m和k

第2到第n+1行: 第i+1行包含乙個單獨的整數: c_i

第n+2到第n+m+1行: 第j+n+1行包含3個由空格隔開的整數: a_j, b_j和l_j

第n+m+2倒第n+m+k+1行: 第i+n+m+1行表示第i個問題,包含兩個由空格隔開的整數s_i和t_i

輸出第1到第k行: 第i行包含乙個單獨的整數,表示從s_i到t_i的最小花費。

樣例輸入

5 7 225

3341 2 3

1 3 2

2 5 3

5 3 1

5 4 1

2 4 3

3 4 4

1 42 3

題目大意:給出你n個點的點權和m條邊的花費,叫你求任意兩點之間的距離。

注意:這裡的距離是指邊權的最短路加上這一條路徑上的最大點權。

題目思路:

一看題目我們便可以知道這是一道多源路徑的最短路,於是我們採用floyed。

唯一要注意的是題目規定從乙個點到另乙個點的路徑不只一種,所以我們在

記錄兩個點的路徑距離時,記得要打擂台(min).

點權怎麼處理?

其實我們也可以像記錄邊權一樣來記錄,不過要取兩點之間的最大點權。

然後我們將floyed改一下就行了,每次要將邊權和點權作比較,就行了。

#include

#include

#include

#include

using

namespace std;

const

int max=

260;

int a[max]

[max]

;int d[max]

[max]

;int c[max]

;int n,m,k;

void

floyed()

}int

main()

}floyed()

,floyed()

,floyed()

;for

(int i=

1;i<=k;i++

)return0;

}

P1595 信封問題

題目描述 某人寫了n封信和n個信封,如果所有的信都裝錯了信封。求所有信都裝錯信封共有多少種不同情況。輸入格式 乙個信封數n n 20 輸出格式 乙個整數,代表有多少種情況。輸入輸出樣例 輸入 1 輸出 1 輸入 2 輸出 2 include include include include inclu...

GDKOI模擬2016 01 24總結

這場比賽爆零了。原因有很多。現就巨集觀而言,進入初三以後,我在資訊學方面遇到很大的瓶頸和壓力,加之初三學習的重負,oi方面一直有些萎靡不振。儘管退出了培優班,但是我發現由於沒有足夠完善的時間安排,我還是不能保證每天都去機房,很多題都沒時間改,更別提去做其它題目了。學習效率也不是很高,當然這些會形成惡...

GDKOI前模擬總結

連續做了4天的模擬賽,比賽之前打擊一下自信心是很好的事情。一開始看題發現第一題都不會感覺生活沒有希望。然後看第二題,好像做過很多遍了。第三題看了題面都覺得不可做,接著第四題,一直在化簡式子,沒有找到突破點。然後先打了第二題。接著第一題想錯了,以為匹配是對的,對拍的時候發現錯了。然後一直調後來發現整個...