您的位置:首页 > 其它

codevs 最小乘车费用 1417

2017-02-04 21:17 309 查看
题目描述 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
)

  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
);

    end;

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: