題目描述:在某條線路上有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 31 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的時候,可以選擇從中間乙個站下車,然後買票再上車,所以乘客整個過程中至少會買兩張票。現...