算法:数独DLX算法
解数独最好的算法叫舞蹈链:Dance Link X。
DLX=Dancing Links数据结构+X算法。
该算法主要是解决精确覆盖问题:比如有个集合X,以及其若干子集的集合Y,要求出一个Y的子集Y*,能够恰好分割X。
舞蹈链算法,需要构建一种数据结构,双向 十字 交叉 循环 链表。
DLX算法具体参见论文 https://arxiv.org/pdf/cs/0011047.pdf
DLX算法过程:
- 问题描述转化为01矩阵
- 构造dance links
- 用X算法求解
- 将得到的01矩阵的结果转为问题答案
求解数独的代码参见 https://blog.csdn.net/bl0ss0m/article/details/17918705
据说最难的数独
800000000003600000070090200050007000000045700000100030001000068008500010090000400
refer
https://zhuanlan.zhihu.com/p/67324277
https://zhuanlan.zhihu.com/p/342580800
https://blog.csdn.net/liujiyong7/article/details/5934494
https://www.cnblogs.com/grenet/p/3145800.html
https://www.zhihu.com/question/23022745/answer/138272280