POJ 2918 Tudoku [搜尋]

來源:互聯網
上載者:User

標籤:blog   2014   os   name   c   for   

和POJ2676一樣哈,,,

原諒我水題目數 = =!。。。

#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;int map[10][10];char tmp[10][10];bool row[10][10];bool col[10][10];bool grid[10][10];bool DFS(int x,int y){int here=3*((x-1)/3)+(y-1)/3+1;if(x==10)return true;if(map[x][y]){bool flag;return y==9?flag=DFS(x+1,1):flag=DFS(x,y+1);}else{for(int num=1;num<=9;num++){if(!row[x][num]&&!col[y][num]&&!grid[here][num]){map[x][y]=num;row[x][num]=true;col[y][num]=true;grid[here][num]=true;bool flag;y==9?flag=DFS(x+1,1):flag=DFS(x,y+1);if(flag)return true;else{map[x][y]=0;row[x][num]=false;col[y][num]=false;grid[here][num]=false;}}}}return false;}int main(){   //freopen("/home/rainto96/in.txt","r",stdin);int test;cin>>test;for(int times=1;times<=test;times++){memset(map,0,sizeof(map));memset(tmp,0,sizeof(tmp));memset(grid,0,sizeof(grid));memset(col,0,sizeof(col));memset(row,0,sizeof(row));for(int i=1;i<=9;i++){for(int j=1;j<=9;j++){cin>>tmp[i][j];int here=3*((i-1)/3)+(j-1)/3+1;map[i][j]=tmp[i][j]-'0';if(map[i][j]){row[i][map[i][j]]=true;col[j][map[i][j]]=true;grid[here][map[i][j]]=true;}}}DFS(1,1);cout<<"Scenario #"<<times<<":\n";for(int i=1;i<=9;i++){for(int j=1;j<=9;j++){cout<<map[i][j];}cout<<'\n';}cout<<'\n';}return 0;}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.