simple code for 200 rmb
contact help- assignment
基于出发地(商店)、目的地(配送地)以及可用的充电点和各充电点的电费单价,
需要决定一条尽可能降低完成配送并补充电力所需电费的路线。
获取出发地、目的地和充电点信息的部分已经实现,
请实现基于这些信息决定路线的算法部分
输入
-
各道路的电力消耗信息
以表示邻接列表的字典形式给出。
详细信息请参考下图。 -
出发地(商店) s s s:作为满足 0 ≤ s ≤ V − 1 0 \le s \le V-1 0≤s≤V−1 的int型城市ID给出
-
目的地(配送地) t t t:作为满足 0 ≤ t ≤ V − 1 0 \le t \le V-1 0≤t≤V−1 的int型城市ID给出
-
充电点信息
以充电点的城市ID为key,电力单价为value的字典形式给出。
输出
- 从出发地到目的地经过的城市ID:作为城市ID的列表返回
注意,当出发地和目的地相同时,返回长度为1的路径。 - 该路线的电费
约束条件
- 城市数 V V V 满足 3 ≤ V ≤ 1000 3 \le V \le 1000 3≤V≤1000
- 保证每个城市延伸的边数不超过10
- 邻接列表中给出的成本(电力消耗) c v c_v cv 是满足 1 ≤ c v ≤ 1000 1 \le c_v \le 1000 1≤cv≤1000 的正整数
- 在邻接列表中,保证存在从起点到终点的路径
- 目的地(配送地)必定存在充电点
- 电力单价 p p p 满足 1 ≤ p ≤ 1000 1 \le p \le 1000 1≤p≤1000
- 充电点数量 N N N 保证满足 1 ≤ N ≤ min ( V , 100 ) 1 \le N \le \min(V, 100) 1≤N≤min(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]