a272: 旅行銷售員
標籤 : 2020 npsc pB 決賽
通過比率 : 1人/3人 ( 33% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-05-13 08:32

內容

你有聽過有名的旅行銷售員問題嗎?問題大概可以這樣描述:給定一系列城市以及在每對城市之間移動所需要的時間,求解拜訪所有城市恰一次並且回到起始城市所需花費的最短時間。

現在你就是一位銷售員,而你的老闆需要你去每一座城市推銷商品,但你的情境跟旅行銷售員有些不同,你的情境是這樣的:

1. 你不只是需要花旅行的時間,當你在城市 i 時,你還必須要花 ti 的時間在這座城市內推銷你的商品,你一開始出發的城市也必須推銷。

2. 當你在每一座城市都推銷完商品後,你就會直接在最後一個城市下班,不用回到你出發的城市。

3. 剛出發的你活力旺盛,但是你知道長途旅行是會讓人疲累的,因此你給自己一個推銷的策略。你會先選擇一個推銷所需時間非遞減(遞增或持平)

的路線,而當你開始疲累的時候,你會轉而走向推銷所需時間非遞增(遞減或持平)的路線。舉例而言,現在有 a, b, c, d, e 五座城市,而這個順序恰好

也是你的推銷路線。假設你是在城市 c 開始感到疲倦,那麼 ta ≤ tb ≤ tc 以及 tc ≥ td ≥ te 必須成立。注意,你可以一出發就感到疲倦,或是到結束時都不感到疲倦。

4. 所有城市之間都是互相連通的,當你從城市 i 移動到城市 j 時,你所需要花的旅行時間是 tj − ti。這是一個時光可以倒流的世界,因此時間可以是負的。

你很想要趕快下班,因此你想要在最短的時間內拜訪每一座城市。你能幫自己規劃一個最好的推銷策略嗎?

輸入說明

輸入共有兩行,第一行是一個正整數 n ,代表城市的數量。

方便起見,每座城市都有一個 1 到 n 之間的獨特編號。

第二行有 n 個用空白分隔的非負整數,其中第 i (1 ≤ i ≤ n) 個數字 ti 代表在第 i 座城市推銷所需要的時間。 你的出發點是第 1 號城市。

1.  1 ≤ n ≤ 106

2.  0 ≤ ti ≤ 109,對於所有 1 ≤ i ≤ n

輸出說明

請輸出一個整數,代表你拜訪完每一座城市所需要花費的最短時間。

範例輸入 #1
#test input 1:
2
100 200

#test input 2:
6
4 3 1 6 5 0

#test input 3:
10
975 187 0 7912 23 456 90 1 975 12
範例輸出 #1
#test output 1:
400

#test output 2:
15

#test output 3:
9656
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (5%): 1.0s , <1M
公開 測資點#1 (5%): 1.0s , <1M
公開 測資點#2 (5%): 1.0s , <1M
公開 測資點#3 (5%): 1.0s , <10M
公開 測資點#4 (5%): 1.0s , <10M
公開 測資點#5 (5%): 1.0s , <1K
公開 測資點#6 (5%): 1.0s , <1M
公開 測資點#7 (5%): 1.0s , <1M
公開 測資點#8 (6%): 1.0s , <1M
公開 測資點#9 (6%): 1.0s , <1M
公開 測資點#10 (6%): 1.0s , <1M
公開 測資點#11 (6%): 1.0s , <1M
公開 測資點#12 (6%): 1.0s , <1M
公開 測資點#13 (6%): 1.0s , <1M
公開 測資點#14 (6%): 1.0s , <10M
公開 測資點#15 (6%): 1.0s , <10M
公開 測資點#16 (6%): 1.0s , <10M
公開 測資點#17 (6%): 1.0s , <10M
提示 :

greedy, sortings (CF 1300)

標籤:
2020 npsc pB 決賽
出處:
npsc [管理者:
haha (大學長)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」