ZOJ 1103 Hike on a Graph(POJ 2415) (广搜)

本文介绍了一道图论题目,通过BFS搜索算法解决三个棋子在同一顶点会合的问题。详细解析了题意理解难点及解题思路,分享了高效简洁的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好吧,我承认,我屈服了,那个题(ZOJ1245 || POJ1471)我现在实在写不出来,那就换题吧……

 

我找到了这个题,不为别的,就因为它描述短……

 

但其实人家不好欺负的,弄懂题意好难啊……

 

开始一直不明白题意,我就不明白了那个实例是咋来的,后来在帖子区看到一位前辈提示,一针见血,于是就明白了题意:

是说有一张图,上面的路径都是着色的,开始的时候有3个盘子在确定的点上,现在让你按要求沿图中的路径移动盘子(一步只能移动一只盘子),问是否能将3个盘子都移到同一个点上,如果可以,输出需要的最少步数,否则输出“impossible”。

 

注意这句话:The following constraint is imposed on this: the piece may only be moved along arrows of the same colour as the arrow between the two opponents' pieces.

 

意思是,每个盘子只能沿着这样一条路移动,这条路的颜色和另外的两个盘子之间的路径上标记的颜色是一样的。

 

当然,这道题给的是完全图,也就是说图上每两个点之间都有路径存在,它们标记的都有颜色。

 

思路嘛,不是我想出来的,是看了人家的说,bfs爆解……

 

代码的原创性也不是很高,这个是因为我觉得那哥们的 bfs() 写的好风骚,于是就果断放弃自己冗长的代码,照着人家的写的

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值