Bootstrap

python版电动车路线算法讲解

simple code for 200 rmb
contact help- assignment

基于出发地(商店)、目的地(配送地)以及可用的充电点和各充电点的电费单价,
需要决定一条尽可能降低完成配送并补充电力所需电费的路线。
获取出发地、目的地和充电点信息的部分已经实现,
请实现基于这些信息决定路线的算法部分

输入

  • 各道路的电力消耗信息
    以表示邻接列表的字典形式给出。
    详细信息请参考下图。

  • 出发地(商店) s s s:作为满足 0 ≤ s ≤ V − 1 0 \le s \le V-1 0sV1 的int型城市ID给出

  • 目的地(配送地) t t t:作为满足 0 ≤ t ≤ V − 1 0 \le t \le V-1 0tV1 的int型城市ID给出

  • 充电点信息
    以充电点的城市ID为key,电力单价为value的字典形式给出。

输出

  • 从出发地到目的地经过的城市ID:作为城市ID的列表返回
    注意,当出发地和目的地相同时,返回长度为1的路径。
  • 该路线的电费

约束条件

  • 城市数 V V V 满足 3 ≤ V ≤ 1000 3 \le V \le 1000 3V1000
  • 保证每个城市延伸的边数不超过10
  • 邻接列表中给出的成本(电力消耗) c v c_v cv 是满足 1 ≤ c v ≤ 1000 1 \le c_v \le 1000 1cv1000 的正整数
  • 在邻接列表中,保证存在从起点到终点的路径
  • 目的地(配送地)必定存在充电点
  • 电力单价 p p p 满足 1 ≤ p ≤ 1000 1 \le p \le 1000 1p1000
  • 充电点数量 N N N 保证满足 1 ≤ N ≤ min ⁡ ( V , 100 ) 1 \le N \le \min(V, 100) 1Nmin(V,100)
  • 保证输出的电费在int型可表示的范围内
  • 决定路线的程序需要在1秒内返回结果

输入样例:

{
  // 节点和邻接表信息
  "nw_info": {
    "0": {
      "17": 829
    },
    "1": {
      "11": 237
    },
    "2": {
      "12": 590,
      "14": 721
    },
    "3": {
      "0": 528
    },
    "4": {
      "11": 491
    },
    "5": {
      "18": 955
    },
    "6": {
      "13": 763,
      "7": 823
    },
    "7": {
      "10": 65
    },
    "8": {
      "14": 733,
      "12": 252,
      "3": 901
    },
    "9": {
      "7": 187,
      "11": 580
    },
    "10": {
      "8": 958
    },
    "11": {
      "16": 247,
      "14": 568,
      "1": 755
    },
    "12": {
      "15": 111,
      "8": 215,
      "3": 52
    },
    "13": {
      "14": 436,
      "9": 482
    },
    "14": {
      "15": 430,
      "8": 646
    },
    "15": {
      "8": 24,
      "6": 516
    },
    "16": {
      "13": 961
    },
    "17": {
      "10": 601,
      "19": 133,
      "4": 29
    },
    "18": {
      "9": 814,
      "2": 965,
      "0": 99,
      "5": 699
    },
    "19": {
      "11": 473,
      "10": 496
    }
  },
  // 只有这几个充电站能充电
  "station_info": {
    "19": 393, //电费
    "16": 974,
    "13": 1,
    "3": 327,
    "2": 146
  },
  "fr": 11,
  "to": 19
}

输出样例

cost: 977216
route: [11, 16, 13, 14, 15, 8, 12, 3, 0, 17, 19]

;