标签:算法-状态压缩

双倍经验:SP1110题意填一个 $16\times 16$ 的数独。多组数据。题解状压优化搜索+剪枝。用 $16$ 位二进制数 $\text{ok}[i][j]$ 表示每个点可以填字母的情况。每次搜索之前先尽可能找到不合法,或只有一种填法的情况。某个点不能填任何字母则回溯;只能填一个字母则直接向下搜索,搜不到直接退出。某个字母不能填在某一行的任何位置则回溯;只能填在一个位置则向下搜索。列同...
题解 算法-搜索 算法-状态压缩
NOI/NOI+/CTSC
题意给出一个 $5\times 5$ 的 $0/1$ 矩阵,每次点击某一个点会改变自身及上下左右的状态。求把矩阵全部变为 $1$ 的最少步数。多组数据,组数 $N\le 500$ 。题解考虑逐行递推,如果上一行 $(i,j)$ 是 $0$ ,那么就需要点击当前行的 $(i+1,j)$ 。最后校验最后一行是否全为 $1$ 即可。但第 $1$ 行没有上一行,所以我们需要枚举第 $0$ 行的状态,...
题解 算法-状态压缩
题意有一个 $N\times M$ 的长方形迷宫,相邻两个单元之间可能有不能通过的墙或可以用第 $Q_i$ 种钥匙打开的门,有的单元中有第 $Q_i$ 种钥匙。从 $(1,1)$ 出发,目标是 $(N,M)$,每次只能移动一个单元,求最短移动时间。其中 $N,M\le 10$ ,钥匙的种类数 $P\le 10$ 。题解钥匙的种类数不多,考虑直接状压搜索。用 $s[x][y][i]$ 表示 $...
题解 算法-搜索 算法-状态压缩 题目-网络流24题
省选/NOI-