题目大意:给你1~N的城市和城市之间的距离,且均为双向边,两个城市之间至多只能有一条边,求城市1到城市2之间的距离。同时有一条件,给出每个城市的阵营,不同阵营之间的路最多只能走一条。其中城市1只能为阵营1,城市2只能为阵营2。
思路:最大的问题在于不同阵营之间的路最多只能走一条,而Mr.M在起点城市1,到终点城市2,那么转化为从阵营1去了阵营2就回不来了,再抽象一下就是只能从阵营1到阵营2,不能从阵营2到阵营1,这不就是有向边的特征吗。。
所以对于连接不同阵营的边,转化为阵营1到阵营2的有向边即可。
还要注意两个城市之间至多只能有一条边,也就是所有边中选出权值最小的边,不得不说去重这种事还是邻接矩阵比较方便。最后再输入邻接表解决双向变单项问题。
#include <