牛客oj 习题11.7||poj 3767 I Wanna Go Home(最短路+有向边处理)

 

题目链接:https://www.nowcoder.com/practice/0160bab3ce5d4ae0bb99dc605601e971?tpId=40&tqId=21359&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

 

题目大意:给你1~N的城市和城市之间的距离,且均为双向边,两个城市之间至多只能有一条边,求城市1到城市2之间的距离。同时有一条件,给出每个城市的阵营,不同阵营之间的路最多只能走一条。其中城市1只能为阵营1,城市2只能为阵营2。

 

思路:最大的问题在于不同阵营之间的路最多只能走一条,而Mr.M在起点城市1,到终点城市2,那么转化为从阵营1去了阵营2就回不来了,再抽象一下就是只能从阵营1到阵营2,不能从阵营2到阵营1,这不就是有向边的特征吗。。

所以对于连接不同阵营的边,转化为阵营1到阵营2的有向边即可。

还要注意两个城市之间至多只能有一条边,也就是所有边中选出权值最小的边,不得不说去重这种事还是邻接矩阵比较方便。最后再输入邻接表解决双向变单项问题。

 

 

#include <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值