ybtoj 高效高階 1 4 深搜 數獨遊戲

2021-10-13 19:00:43 字數 810 閱讀 9781

用字串輸入

將其轉換成數值放入陣列a

陣列l統計當前行數字的使用情況

陣列r統計當前列數字的使用情況

陣列f統計當前3*3方格數字的使用情況

列舉當前格可以填的數字

#include

#include

#include

using namespace std;

int a[10]

[10],l[10]

[10],r[10]

[10],f[5]

[5][10],p;

string s;

int k(int x)

void dfs(int x,int y)

if(a[x]

[y])

if(y==9)

dfs(x+1,1)

;else dfs(x,y+1)

;for

(int i=1;i<=9;i++)if(

!l[x]

[i]&&

!r[y]

[i]&&

!f[k(x)

][k(y)

][i]

&&a[x]

[y]==0) //判斷是否能填

}int main(

)else a[i]

[j]=0; //預處理

dfs(1,1);}

return 0;

}

ybtoj 高效高階 1 4 深搜 蟲食算

記錄下字母的出現順序 從右往左 列舉每個字母可能的數字 a是加數一,b是加數二,c是和 當這三個數已經填數時 否則進製賦為 1 include include include using namespace std string s 5 char q 30 int n,t,p 30 ans 30 u...

數獨遊戲(dfs深搜)

如下所示,玩家需要根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個色九宮內的數字均含1 9,不重複 數獨的答案都是唯一的,所以,多個解也稱為無解 本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的目。但對會使用計算機程式設計的你來說,恐怕易如反掌了 本題的要...

YbtOJ高效高階 廣搜 2 山峰和山谷

ybtoj高效高階 廣搜 2 給定乙個 n n 的網格狀地圖,每個方格 i,j 有乙個高度 wi,jw wi,j 如果兩個方格有公共頂點,則它們是相鄰的。定義山峰山谷如下 均由地圖上的乙個聯通塊組成。所有方格高度都相同。周圍的方格 即不屬於山峰或山谷但與山峰或山谷相鄰的格仔 高度均大於山谷的高度,或...