1003 數獨填充問題

2021-07-29 05:50:44 字數 1256 閱讀 3082

題目描述

給出乙個4*4的矩陣,在矩陣中填入數字1,2,3,4,使得每行、每列的數字不重複,而且左上角、右上角、左下角、右下角的2*2小矩陣的4個數字不重複。

輸入描述

輸入包含多組測試資料。第一行為乙個整數t(1<=t<=10),表示有t組測試資料。

第二行開始為t組測試資料。

輸出描述

首先輸出一行「case #x:」,x表示第i組測試資料。

然後輸出填充的4*4矩陣。每組測試資料之間輸出乙個空行。

輸入樣例

2

****

2341

4123

3214

*243

*312

*421

*134

輸出樣例

case #1:

1432

2341

4123

3214

case #2:

1243

4312

3421

2134

#include"stdio.h"

int jz,ii,n,t;

char ai[5][5];

int x[20],y[20],a[20],b[20]; //x,y陣列用來儲存每乙個*號的橫縱座標 a,b陣列用來記錄每乙個*所屬的小正方形格

bool biaoji=false;

void dfs(int n) //不斷地嘗試 遞迴加回溯

int i,k;

char j;

bool sign1,sign2,sign3;

for (j='1';j<='4';j++)

if (i==x[n])

continue;

if (j==ai[i][y[n]])

}if (!sign1||!sign2)

//判斷小正方形中是否存在相同的值

for (i = a[n]; i < a[n]+2; i++)}}

if (!sign3)

//嘗試下乙個待填區域

dfs(n+1);

}}void input()}}

}void found() //記錄每乙個待填格所屬小正方形}}

}}void output()

if(ii!=t)

printf("\n");

}int main()

return

0;}

數獨填充問題

給出乙個4 4的矩陣,在矩陣中填入數字1,2,3,4,使得每行 每列的數字不重複,而且左上角 右上角 左下角 右下角的2 2小矩陣的4個數字不重複。輸入包含多組測試資料。第一行為乙個整數t 1 t 10 表示有t組測試資料。第二行開始為t組測試資料。首先輸出一行 case x x表示第i組測試資料。...

數獨問題 解數獨

數獨是乙個非常有名的遊戲。整個是乙個9x9的大宮格,其中又被劃分成9個3x3的小宮格。要求在每個小格中放入1 9中的某個數字。要求是 每行 每列 每個小宮格中數字不能重複。現要求用計算機求解數獨。輸入描述 輸入9行,每行為空格隔開的9個數字,為0的地方就是需要填充的數字。輸出描述 輸出九行,每行九個...

數獨問題 模板

dlx解決9 9的數獨問題,轉化為729 324的精確覆蓋問題 行 一共9 9 9 729行。一共9 9小格,每一格有9種可能性 1 9 每一種可能都對應著一行。列 一共 9 9 9 9 81 324 種前面三個9分別代表著9行9列和9小塊,乘以9的意思是9種可能 1 9 因為每種可能只可以選擇乙個...