假設某條街上每一公里就有乙個公共汽車站,並且乘車費用如下表:
而任意一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案,使得總費用最小
注意:10公里的費用比1公里小的情況是允許的。
輸入檔案busses.in,檔案共兩行,第一行為10個不超過200的整數,依次表示行駛1~10公里的費用,相鄰兩數間用乙個空格隔開;第二行為某人想要行駛的公里數。
output
輸出檔案busses.out,僅一行,包含乙個整數,表示行使這麼遠所需要的最小費用。
12 21 31 40 49 58 69 79 90 101
15吐槽時間到
注意是恰好n公里,不是至少n公里
吐槽時間結束
設b[i]為剛好i公里的最小費用,a[i]為走i公里的費用
b [i
]=mi
n(b[
i],b
[i−j
]+a[
j])(
1<=i
<=n
,1<=j
<=10
)b[i]=min(b[i],b[i-j]+a[j])(1<=i<=n,1<=j<=10)
b[i]=m
in(b
[i],
b[i−
j]+a
[j])
(1<=i
<=n
,1<=j
<=1
0)前10個b[x]初值為a[x]
code:
#include
#include
using
namespace std;
int a[11]
,b[10001
],n;
intmain()
cin>>n;
for(
int i=
1;i<=n;i++)}
cout<
;return0;
}
SSL 1643 最小乘車費用
假設某條街上每一公里就有乙個公共汽車站,並且乘車費用如下表 而任意一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案,使得總費用最小 注意 10公里的費用比1公里小的情況是允許的。檔案共兩行,第一行為10個不超過200的整數,依次表示行駛1 10公里的費用...
最小乘車費用
題意 假設某條街上每一公里就有乙個公共汽車站,並且乘車費用如下表 而任意一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案,使得總費用最小 分析f i min f i f i j a j vari,j,n longint f,a array 0.100 o...
最小乘車費用
某條街上每隔一公里就有一汽車站,乘車費用如下表 公里數 1 2 3 4 5 6 7 8 9 10 費用 12 21 31 40 49 58 69 79 90 101 而一輛汽車從不行駛超過 10 公里。某人想行駛 n 公里,假設他可以任意次換車,請你幫他找到一種乘車方案使費用最小 10 公里的費用比...