POJ 2676 Sudoku DFS
數(shù)獨(dú)題 直接用的DFS 但是從前面搜會(huì)超時(shí) 要從后面搜 我不知道為什么 跟數(shù)據(jù)有關(guān)嗎? MMD講過(guò)做數(shù)獨(dú)有種非常強(qiáng)大的方法 dancing links
現(xiàn)在還看不懂 也不會(huì)寫(xiě) 一步步來(lái)吧
POJ 上有很多數(shù)獨(dú)題 以后慢慢切掉
int dfs(int x)
{
??? if(x==-1) return 1;
??? int i;
??? if(a[x/n][x%n]!=0) return dfs(x-1);
??? else
??? {
??? ??? for(i=1;i<=n;i++)
??? ??? {
??? ??? ??? a[x/n][x%n]=i;
??? ??? ??? if(check(x/n,x%n))
??? ??? ??? ??? if(dfs(x-1)) return 1;
??? ??? ??? a[x/n][x%n]=0;
??? ??? }
??? }
??? return 0;
}
現(xiàn)在還看不懂 也不會(huì)寫(xiě) 一步步來(lái)吧
POJ 上有很多數(shù)獨(dú)題 以后慢慢切掉
int dfs(int x)
{
??? if(x==-1) return 1;
??? int i;
??? if(a[x/n][x%n]!=0) return dfs(x-1);
??? else
??? {
??? ??? for(i=1;i<=n;i++)
??? ??? {
??? ??? ??? a[x/n][x%n]=i;
??? ??? ??? if(check(x/n,x%n))
??? ??? ??? ??? if(dfs(x-1)) return 1;
??? ??? ??? a[x/n][x%n]=0;
??? ??? }
??? }
??? return 0;
}
posted on 2008-08-12 12:59 Victordu 閱讀(646) 評(píng)論(0) 編輯 收藏 引用