K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
状态压缩广度优先搜索是BFS的经典扩展形式,常用来解决状态可离散编码的最短路径类问题,请判断下列描述中错误的选项。
状压BFS通常用整数的二进制位表示状态中每个元素的取值,比如n个节点的访问状态可以用长度为n的二进制数编码,最多支持n不超过30左右(对应int类型)的场景。
状压BFS的状态判重数组维度通常为「原始状态维度 + 1维的状态编码值」,比如走迷宫带钥匙的场景,判重数组可以是vis[x][y][state],state表示当前持有的钥匙状态。
状压BFS相比普通BFS,时间复杂度一定会更低,因为用位运算压缩了状态,存储和遍历效率都更高。
实现状压BFS时,常用到位运算操作,比如state | (1 << k)表示给状态添加第k位对应的属性,state & (1 << k)用于判断状态中是否包含第k位对应的属性。
state | (1 << k)
state & (1 << k)