日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

HDU 1426 Sudoku Killer

發(fā)布時間:2025/3/20 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 1426 Sudoku Killer 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)獨(DFS)。


非常憂傷的一道題,先是剪枝的三個數(shù)組開成[9][9]導(dǎo)致 越界了WA。


然后就是每兩組輸出之間有空行,可是最后一組后面不能輸出空行。PE好多次。


#include<cstdio> #include<cstring> #include<string> #include<queue> #include<algorithm> #include<map> #include<stack> #include<iostream> #include<list> #include<set> #include<cmath>#define INF 0x7fffffff #define eps 1e-8 #define LL long long #define PI 3.141592654 #define CLR(a,b) memset(a,b,sizeof(a)) #define FORi(n) for(int i=0;i<n;i++) #define FORj(n) for(int j=0;j<n;j++) #define FORk(n) for(int k=0;k<n;k++) #define debug puts("==fuck==") #define acfun std::ios::sync_with_stdio(false)#define SIZE 1000+10 using namespace std;int g[9][9]; bool visx[9][10],visy[9][10],box[9][10]; void show() {FORi(9){FORj(8)printf("%d ",g[i][j]);printf("%d\n",g[i][8]);} } void dfs(int n) {if(n>80)show();else{int i=n/9,j=n%9;if(!g[i][j]){for(int k=1; k<=9; k++)if(!visx[i][k]&&!visy[j][k]&&!box[i/3*3+j/3][k]){g[i][j]=k;visx[i][k]=visy[j][k]=box[i/3*3+j/3][k]=1;dfs(n+1);g[i][j]=0;visx[i][k]=visy[j][k]=box[i/3*3+j/3][k]=0;}}elsedfs(n+1);} } int main() {char ch[5];bool flag=0;while(~scanf("%s",ch)){CLR(visx,0);CLR(visy,0);CLR(box,0);if(ch[0]>='1'&&ch[0]<='9')g[0][0]=ch[0]-'0';else if(ch[0]=='?')g[0][0]=0;if(g[0][0])visx[0][g[0][0]]=visy[0][g[0][0]]=box[0][g[0][0]]=1;FORi(9)FORj(9){if(i==0&&j==0)continue;scanf("%s",ch);if(ch[0]>='1'&&ch[0]<='9')g[i][j]=ch[0]-'0';else if(ch[0]=='?')g[i][j]=0;if(g[i][j])visx[i][g[i][j]]=visy[j][g[i][j]]=box[i/3*3+j/3][g[i][j]]=1;}if(!flag)flag=1;else printf("\n");dfs(0);} }

轉(zhuǎn)載于:https://www.cnblogs.com/gcczhongduan/p/4094346.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的HDU 1426 Sudoku Killer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。