Luogu4011 孤岛营救问题(拯救大兵瑞恩)分层图+最短路

题面:孤岛营救问题

如果没有钥匙,那么这题就是一个最简单的最短路,有了钥匙以后,就要朝这个方向想(一个很经典的套路):能不能对图做某些操作,使得问题再次变成一个简单的最短路问题。然后就要用到一个技巧:分层图。我们共建2p” role=”presentation” style=”position: relative;”>2p层图,每层图的层数表示当前拥有什么种类的钥匙(用二进制来表示),我们先建立每一层内的边,假设拥有层 代表的这些钥匙,由当前点向能走到的上下左右建立一条边权为1的边。然后建立层外的边,若当前节点有钥匙,则向代表有当前层有的钥匙+现在找到的钥匙层建边,边权为0(捡钥匙不需要时间0)然后跑一边最短路。
不得不说细节很多
代码:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月2日
下一篇 2018年7月2日

相关推荐