題目1086 最小花費

2021-07-26 14:37:37 字數 1272 閱讀 8851

題目描述:在某條線路上有n個火車站,有三種距離的路程,l1,l2,l3,對應的**為c1,c2,c3.其對應關係如下:

距離s           票價

0l1l2輸入保證0每兩個站之間的距離不超過l3。

當乘客要移動的兩個站的距離大於l3的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票。

現在給你乙個 l1,l2,l3,c1,c2,c3。然後是a b的值,其分別為乘客旅程的起始站和終點站。

然後輸入n,n為該線路上的總的火車站數目,然後輸入n-1個整數,分別代表從該線路上的第乙個站,到第2個站,第3個站,……,第n個站的距離。

根據輸入,輸出乘客從a到b站的最小花費。

輸入:以如下格式輸入資料:

l1  l2  l3  c1  c2  c3

a  b n

a[2]

a[3]

……a[n]

輸出:可能有多組測試資料,對於每一組資料,

根據輸入,輸出乘客從a到b站的最小花費。

樣例輸入:

1 2 3 1 2 3

1 22

2

樣例輸出:

2

使用動態規劃

#include#includeusing namespace std;

const int max = 1010;

#define inf 0x7fffffffffff //設定這個最大值時要注意和long long型比較大小,這裡並沒有完全表示成longlong的最大值

long long getmin(long long a, long long b)

int main()

cin >> n;

for (int i = 2; i <= n; i++)

cin >> dis[i];

for (int i = b; i > a; i--)

dis[i] -= dis[i - 1];

for (int i = a; i <= b; i++)

price[i] = inf;

price[a] = 0;

for (int i = a + 1; i <= b; i++)

} cout << price[b] << endl;

} return 0;

}

題目1086 最小花費

題目描述 在某條線路上有n個火車站,有三種距離的路程,l1,l2,l3,對應的 為c1,c2,c3.其對應關係如下 距離s 票價 0l1l2輸入保證0每兩個站之間的距離不超過l3。當乘客要移動的兩個站的距離大於l3的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票。現...

九度OJ 題目1086 最小花費

一.題目描述 在某條線路上有n個火車站,有三種距離的路程,l1,l2,l3,對應的 為c1,c2,c3.其對應關係如下 距離s 票價 0l1l2輸入保證0每兩個站之間的距離不超過l3。當乘客要移動的兩個站的距離大於l3的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票...

最小花費 Dijkstra

原題鏈結傳送門 d es crip tion description descri ptio n在n個人中,某些人的銀行賬號之間可以互相轉賬。這些人之間轉賬的手續費各不相同。給定這些人之間轉賬時需要從轉賬金額裡扣除百分之幾的手續費,請問a最少需要多少錢使得轉賬後b收到100元。i np ut inp...