注意到每次转移的代价都为一,于是爆搜即可。
这个题的难点在于状态的判重(大概)。
\(1000 * 1000\) 的数据规模的话map有点勉强,更何况出题人专门出了卡map的数据(第11个点),所以map是无法通过此题的。
我们从状态入手。首先仔细读题,确定出如下状态:
struct state{ int x, y; int ld; bool smell;};
考虑到每个状态只有4维,分别是
所以我们可以把气味放在十进制下第六位,0-5位放横纵坐标,二进制下的第0位放气味,那么就可以用一个1e7的数组放下所以状态了。
#include