From 430d31920088f9df46d8ee0894b7125ea51a5f50 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Sun, 25 Aug 2024 13:16:15 +0800 Subject: [PATCH] update --- 20240823/十四届蓝桥比赛/数独填数.cpp | 154 +++++++++++++-------------- out.txt | Bin 0 -> 125932 bytes xmake.lua | 3 +- 3 files changed, 76 insertions(+), 81 deletions(-) create mode 100644 out.txt diff --git a/20240823/十四届蓝桥比赛/数独填数.cpp b/20240823/十四届蓝桥比赛/数独填数.cpp index e92b354..7cc258b 100644 --- a/20240823/十四届蓝桥比赛/数独填数.cpp +++ b/20240823/十四届蓝桥比赛/数独填数.cpp @@ -1,32 +1,76 @@ -//NOT DONE #include using namespace std; +int m[10][10]; +bool h_is_used[10][10],l_is_used[10][10],t_is_used[4][4][10]; + #ifdef OI #define DB(code){code} +#define PV(v){cout<<#v<<" : "<<(v)<> find_next(int x,int y); + +int main(){ + for(int i=1;i<=9;i++){ + string str; + getline(cin,str); + for(int j=1;j<=9;j++){ + if(str[j-1]=='.'){ + m[i][j]=-1; + }else{ + m[i][j]=str[j-1]-'0'; + h_is_used[i][m[i][j]]=true; + l_is_used[j][m[i][j]]=true; + t_is_used[i/3+1][j/3+1][m[i][j]]=true; + } + } + } + DB( + for(int i=1;i<=9;i++){ + for(int j=1;j<=9;j++){ + cout<first, find->second); +} + +optional> find_next(int x,int y){ + for (int j=y+1; j<=9; j++) { + if(m[x][j]==-1){ + return make_optional>({x,j}); + } + } + for(int i=x+1;i<=9;i++){ + for(int j=1;j<=9;j++){ + if(m[i][j]==-1){ + return make_optional>({i,j}); + } + } + } + return nullopt; +} -// bool check(int x,int y,int num); -bool check(int x,int y,int num); void dfs(int x,int y){ - if(x==9&&y==9){ + DB(PV(x)PV(y)cout<first, find->second); -// } - -bool check(int x,int y,int num){ - for(int i=1;i<=9;i++){ - if(m[i][y]==num){ - return false; - } + h_is_used[x][i]=false; + l_is_used[y][i]=false; + t_is_used[x/3+1][y/3+1][i]=false; + m[x][y]=-1; } - for(int i=1;i<=9;i++){ - if(m[x][i]==num){ - return false; - } - } - for(int i=x+1,j=y+1;i<=9&&j<=9;i++,j++){ - if(m[i][j]==num){ - return false; - } - } - for(int i=x-1,j=y-1;i>=1&&j>=1;i--,j--){ - if(m[i][j]==num){ - return false; - } - } - return true; -} - -/* -17.5..8.. -.52.1.... -.....759. -.8...94.3 -.197.4..8 -7......15 -4.1...6.. -3...2..59 -...96..3. -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/out.txt b/out.txt new file mode 100644 index 0000000000000000000000000000000000000000..3a5bd8d0c779d95513aa0f647c212b23a3399bcb GIT binary patch literal 125932 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