好吧,我承认这个数独的图不好弄,建图建了好久,才想到每一行就四个结点,数独转化为精确覆盖问题的方法还是参照Knuth的论文,如果读取到一个格子是空的,那么加9行,分别表示这个格子填1到9这9个数字,如果读取到的格子是一个数字,那么就加一行就可以了,然后列有9*9*4列,前81列表示这一行表示填的是第i行第j列的格子,接下来81列表示第i行填写k,接下来81列表示第j列填写k,最后81列表示对应九宫格填写k。转化为精确覆盖之后,直接跑dlx的dfs就可以了,主要还是建图,对于3076的16*16做法如出一辙。
我的代码:
3074:
3076:

本文介绍了一种将数独问题转化为精确覆盖问题的求解算法,并提供了针对9×9及16×16数独的具体实现代码。通过构建特定的数据结构,使用深度优先搜索(DFS)来寻找数独的解决方案。
525

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



