本研究探讨了在长途驾驶中优化汽车加油策略的算法设计与分析,旨在通过数学模型和计算方法解决燃油成本最小化及时间效率最大化的问题。
给定一个N*N的方形网格,设其左上角为起点(1, 1),X轴向右为正方向,Y轴向下为正方向,每个方格边长为1。一辆汽车从起点出发驶向终点(N,N)。在若干个网格交叉点处设置了油库,可供汽车行驶途中加油。
规则如下:
- 汽车只能沿网格的边缘移动,在装满油后可以行驶K条网格边;初始时汽车已加满油,并且在起点和终点没有设置油站。
- 当汽车经过一条网络边时,若其X坐标或Y坐标减小,则需要支付费用B,否则无需付费。
- 汽车遇到有加油服务的交叉点可以将油箱加满并支付费用A进行加油。
- 在必要的情况下可以在网格交叉点增设加油站,并且需付设立新站的费用C(不包括每次加油时产生的费用)。
给定的数据满足以下条件:N、K、A、B、C均为正整数,2 <= N <= 100和2 <= K <= 10。算法设计的目标是求解从起点到终点所需支付最少总费用的行驶路径。
输入数据格式如下:
- 第一行包含五个数字N, K, A, B 和 C。
- 接下来是一个由0或1组成的 N*N 方阵,其中每个交叉点(i,j)处若值为1则表示在此位置设置了油库;反之,则未设置。每行相邻的两个数值之间以空格分隔。
输出结果应显示汽车从起点到终点行驶所需的最小费用。
示例输入:
```
9 3 2 3 6
0 0 0 0 1 0 0 0 0
...
(其余数据省略)
```
示例输出:`12`