首先想到的是:
graph 保存 无向图
flag 表示按序号排列的石头的个数
note 表示所有点按顺序是否被占据
使用bfs
将flag换算成16进制 hash 判重
note 换成二进制储存在struct state
循环中按序遍历 flag 数组 由note判断能否行走
这样很复杂
网上的做法:
flag 表示所有点按顺序是否被石头占据 转换成二进制数
用二维数组 vis[1<<maxn][15] 判重
使用的位运算非常巧妙:
与指定位为1的数相或可以置1
与指定位为1的数相与可以
详见
保留指定位