用字串輸入
將其轉換成數值放入陣列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 如果兩個方格有公共頂點,則它們是相鄰的。定義山峰山谷如下 均由地圖上的乙個聯通塊組成。所有方格高度都相同。周圍的方格 即不屬於山峰或山谷但與山峰或山谷相鄰的格仔 高度均大於山谷的高度,或...