1.数独问题
对一个1~9的数,在每行、每列,每一个宫只能出现一次。因此,每一行、每一列、每一个宫均是这9个数的一个排列。
用rvisit[ ][i]记录数i在每行(row)的访问情况,cvisit[ ][i]记录每列(coloumn),svisit[ ][i]记录每一个宫(subsquare)。易得:第x行第y列属于第3*(x/3)+y/3个宫。从左至右从上至下,依次填充每一个空格子(空格子用0表示),从数1~9挨个尝试,遍历所有情况。代码如下:
void
这篇博客介绍了如何使用深度优先搜索(DFS)解决数独问题。通过记录行、列和宫的访问情况,逐个尝试1到9的数字填充空格。在POJ 2676问题中,作者提醒注意搜索顺序和数组大小,错误的实现会导致答案错误。
对一个1~9的数,在每行、每列,每一个宫只能出现一次。因此,每一行、每一列、每一个宫均是这9个数的一个排列。
用rvisit[ ][i]记录数i在每行(row)的访问情况,cvisit[ ][i]记录每列(coloumn),svisit[ ][i]记录每一个宫(subsquare)。易得:第x行第y列属于第3*(x/3)+y/3个宫。从左至右从上至下,依次填充每一个空格子(空格子用0表示),从数1~9挨个尝试,遍历所有情况。代码如下:
void
884
2048

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