codevs 最小乘车费用 1417

    xiaoxiao2021-03-26  29

    题目描述 Description

    假设某条街上每一公里就有一个公共汽车站,并且乘车费用如下:

    公里数   1    2    3    4    5     6    7     8     9    10

    费用      12  21  31  40  49  58  69   79   90   101 任意一辆汽车从不行驶超过10公里。某人想行驶n公里,可以任意次换车,请帮他找到一种乘车方案,使得费用最小。 注意:10公里的费用是可以比1公里小的。

    输入文件共两行, 第一行为10个不超过200的整数,依次表示1~10公里的费用。 第二行为某人想要行驶的公里数。

    输出描述 Output Description

    输出仅一行,为乘车的最小费用。

    样例输入 Sample Input 12 21 31 40 49 58 69 79 90 101 15 样例输出 Sample Output

    147

    代码:

       var a:array[1..10] of longint;     f:array[0..100] of longint;     i,n,j,t,min:longint; begin   for i:=1 to 10 do begin read(a[i]); f[i]:=a[i]; end;   read(n);   for i:=1 to 10 do     begin     for j:=1 to i-1 do       if f[j]+f[i-j]<f[i] then f[i]:=f[j]+f[i-j];     end;   if n<=10 then writeln(f[n])   else     begin       for i:=11 to n do       begin         min:=999999;         for j:=i-1 downto 1 do         begin          if f[i-j]+f[j]<min then min:=f[i-j]+f[j];         end;         f[i]:=min;       end;         writeln(f[n]);     end; end.

    转载请注明原文地址: https://ju.6miu.com/read-659086.html

    最新回复(0)