#1222. 【例题4】汽车加油-题面少图

【例题4】汽车加油-题面少图

当前没有测试数据。

【例题4】汽车加油

题目描述

给定一个N×NN \times N的方形网格,设其左上角为起点,坐标为(1,1)(1,1)XX轴向右为正,YY轴向下为正,每个方格边长为11,如图所示。

一辆汽车从起点出发驶向右下角终点Δ\Delta,其坐标为(N,N)(N,N)

在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油。汽车在行驶过程中应遵守如下规则:

  • 汽车只能沿网格边行驶,装满油后能行驶KK条网格边。出发时汽车已装满油,在起点与终点处不设油库。
  • 汽车经过一条网格边时,若其XX坐标或YY坐标减小,则应付费用BB,否则免付费用。
  • 汽车在行驶过程中遇油库则应加满油并付加油费用AA
  • 在需要时可在网格点处增设油库,并付增设油库费用CC(不含加油费用AA)。
  • NN,KK,AA,BB,CC均为正整数,且满足约束:2N1002 \leq N \leq 1002K102 \leq K \leq 10

设计一个算法,求出汽车从起点出发到达终点的一条所付费费用最少的行驶路线。

输入格式

文件的第一行是NN,KK,AA,BB,CC的值。

第二行起是一个N×NN \times N00-11方阵,每行NN个值,至N+1N+1行结束。

方阵的第ii行第jj列处的值为11表示在网格交叉点(i,j)(i,j)处设置了一个油库,为00时表示未设油库。各行相邻两个数以空格分隔。

输出格式

程序运行结束时,输出最小费用。

数据范围与提示

  • 2<N<1002 < N < 100
  • 2K102 \leq K \leq 10

样例

9 3 2 3 6
0 0 0 0 1 0 0 0 0
0 0 0 1 0 1 1 0 0
1 0 1 0 0 0 0 1 0
0 0 0 0 0 1 0 0 1
1 0 0 1 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0 1
1 0 0 1 0 0 0 1 0
0 1 0 0 0 0 0 0 0
12