国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

poj 2676 Sudoku(dfs)

2019-11-08 02:20:02
字體:
來源:轉載
供稿:網友

用一個數組把空位記錄下來,直接搜索就好了

#include <cstdio>#include <cstring>struct node{ int x,y;};node ns[100];int len;char g[10][10];bool flag;bool check(int k, int index){ int x = ns[index].x; int y = ns[index].y; int cx = (x/3)*3+1; int cy = (y/3)*3+1;//當前所在子矩陣的中心坐標 int mark = false; for(int i = 0; i < 9; ++i) { if(g[x][i] == k) { mark = true; break; } if(g[i][y] == k) { mark = true; break; } } if(mark) return false; if(g[cx][cy] == k || g[cx-1][cy-1] == k || g[cx-1][cy] == k || g[cx][cy-1] == k || g[cx+1][cy] == k || g[cx][cy+1] == k || g[cx-1][cy+1] == k || g[cx+1][cy-1] == k || g[cx+1][cy+1] == k) mark = true; if(mark) return false; return true;}void DFS(int index){ if(index == len) { flag = true; return; } for(int k = 1; k <= 9; ++k) { if(check(k+'0',index)) { g[ns[index].x][ns[index].y] = k+'0'; DFS(index+1); if(flag) return; g[ns[index].x][ns[index].y] = '0'; } }}int main(){ int t; scanf("%d",&t); while(t--) { flag = false; len = 0; for(int i = 0; i < 9; ++i) for(int j = 0; j < 9; ++j) { scanf(" %c",&g[i][j]); if(g[i][j] == '0') { ns[len].x = i; ns[len].y = j; ++len; } } DFS(0); for(int i = 0; i < 9; ++i) { for(int j = 0; j < 9; ++j)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萍乡市| 南皮县| 治多县| 乌什县| 盱眙县| 彰武县| 固阳县| 乳山市| 长岛县| 西畴县| 建阳市| 重庆市| 宣汉县| 山阳县| 读书| 东乌珠穆沁旗| 远安县| 兴安县| 东山县| 介休市| 慈利县| 唐山市| 修水县| 剑阁县| 外汇| 进贤县| 缙云县| 麻城市| 临潭县| 塘沽区| 滦南县| 高邑县| 榆中县| 长寿区| 台江县| 淮北市| 台南县| 长垣县| 皮山县| 乐东| 清水河县|