也是第一次接触这种分层建图的最短路 思路:由题目我们可以知道某些站点是可以连接好几条地铁线路的,那么对于每条地铁线路我们可以把他当成一幅图来算。当然图是个无向图,所以要加两次边。 add(i*n+x,i*n+pre,b); //乘i的话就是说把他建在第i层,这个pre是记录上一个点的位置。 add(i*n+pre,i*n+x,b); 处理换乘时的操作 利用到我们刚刚所说的虚点 add(x,i*n+x,a); //从虚点到地铁线上需要花费,花费坐这条线的价格 //也就是题中(坐i号线需要花费a[i]的价格) add(i*n+x,x,0); //从地铁线上到虚点花费为0 根据题目...