九度OJ 1086 最小花費 動態規劃

2022-07-28 00:09:23 字數 1480 閱讀 7498

題目描述:在某條線路上有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

na[2]

a[3]

……a[n]

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

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

樣例輸入:

1 2 3 1 2 3

1 22

2

樣例輸出:

2

提交了五次終於ac了,有點激動啊!!!

#include #define maxc 2211686018427387904

#define maxn 30000

long long l1, l2, l3, c1, c2, c3; //距離、花費

int n; //車站數

long long compute_cost(int start, int end, long long len);

long long getspend(int start, int end, long long len);

int main(void);

int i;

while (~scanf("%lld %lld %lld %lld %lld %lld",&l1,&l2,&l3,&c1,&c2,&c3))

printf("%lld\n", compute_cost(start, end, len));

}return 0;}

long long getspend(int start, int end, long long len)

long long compute_cost(int start, int end, long long len);

cost[start] = 0;

for (i=start+1; i<=end; ++i)

cost[i] = min;

}min = cost[end];

return min;

}

九度OJ 題目1086 最小花費

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

題目1086 最小花費

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

題目1086 最小花費

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