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