小塔在一个4×4的网格里玩贪吃蛇,从第二步开始每-次操作都要完整经过如下步骤:
选择一个方向,可以保持原来方向、顺时针旋转 90°或逆时针旋转 90°;
沿刚刚选定的方向,前进一个单位,需要保证操作在网格范围内且未走过,否则会发生碰撞并终止游戏;
如果在某一次操作中,小塔无路可走,游戏会立即中止。
根据数据范围n=4,直接考虑dfs,对于目前图上已走的步数,进行循环反悔,然后进行dfs看下能不能走完4∗4,如走完跳出循环输出答案即可
#include <bits/stdc++.h>
using namespace std;
#define N 100005
int a[10][10];
map<int,pair<int,int>>mp;