地铁 CSU - 1808 dijkstra 拆点
题解
每个点有多个线路,不同线路之间切换需要额外代价,直接在队列的节点中记录当前线路编号增加额外代价无法得到最优解。
将原有节点拆分,使用map进行标号,如果当前节点有x个线路相连则将当前节点拆分为x个点,原边只在相同线路的点副本之间连接。
**每个节点,相邻站点编号的副本节点进行相连,代价为编号差。**不用每个副本都两两之间建立边,会导致极端复杂度M^2。
起始节点和终点的副本之间建立0代价边。...
原创
2019-04-09 21:02:36 ·
772 阅读 ·
0 评论