1. 数独问题
在前一篇中简要地介绍了DLX算法,这一篇将主要讲DLX的应用——解决数独问题。DLX本身是用来解决exact cover问题,如果有一些问题能转化成exact cover问题,也就意味着也能用DLX求解。
数独(Sudoku)问题是在一个9 * 9的格子上,分为9个宫。有一些格子是已经填好了的,你的目标是把剩下的每一个格子填上1-9中的某一个数,使得每一行、每一列、每一个宫都包含1-9每个数各一次。比如:
本文介绍了如何应用Dancing Links (DLX) 算法来解决数独问题。数独是一种逻辑谜题,目标是填满9x9的网格,使得每一行、每一列和每个3x3宫格都包含1到9的数字且不重复。当DFS等暴力解法无法有效解决复杂数独时,DLX算法能提供解决方案。文章通过构建矩阵A将数独问题转化为exact cover问题,并讨论了POJ 3074和POJ 3076两个相关题目。
在前一篇中简要地介绍了DLX算法,这一篇将主要讲DLX的应用——解决数独问题。DLX本身是用来解决exact cover问题,如果有一些问题能转化成exact cover问题,也就意味着也能用DLX求解。
数独(Sudoku)问题是在一个9 * 9的格子上,分为9个宫。有一些格子是已经填好了的,你的目标是把剩下的每一个格子填上1-9中的某一个数,使得每一行、每一列、每一个宫都包含1-9每个数各一次。比如:
1500
1819

被折叠的 条评论
为什么被折叠?