题意:
给你一张地图,把箱子推到目的地,要求在推箱子次数最少的前提下最小化走的路程。输出方案。
题解:
这题网上有很多A*和嵌套bfs的做法。事实上Dijkstra解决这道题也十分优越。
用状态dis[a][b][c][d]表示人处于(a,b)这个点,箱子处于(c,d)这个点的最小费用。费用的定义是推箱子的费用+人行走
的费用。我们将一次推箱子的费用设置成10000,而人走一次的费用设置成1,就满足了在推箱子次数最少的前提下最小化
走的路程的条件。输出方案的话记录一下前驱节点即可。复杂度O(n^2*m^2*log(n^2*m^2))
#include
#include