【ybtoj 高效進階 1.4】【深搜】數獨遊戲
【ybtoj 高效進階 1.4】【深搜】數獨遊戲
題目
解題思路
用字串輸入
將其轉換成數值放入陣列a
陣列l統計當前行數字的使用情況
陣列r統計當前列數字的使用情況
陣列f統計當前3*3方格數字的使用情況
列舉當前格可以填的數字
程式碼
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[10][10],l[10][10],r[10][10],f[5][5][10],p;
string s;
int k(int x)
{
if (x<4) return 1;
if (x<7) return 2;
return 3;
}
void dfs(int x,int y)
{
if (p) return; //已經輸出答案
if (x>9) //
{
for (int i=1;i<=9;i++)
for (int j=1;j<=9;j++)
printf("%d",a[i][j]);
printf("\n");
p=1;
return;
}
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) //判斷是否能填
{
a[x][y]=i;
l[x][i]=r[y][i]=f[k(x)][k(y)][i]=1;
if (y==9)
dfs(x+1,1);
else dfs(x,y+1);
l[x][i]=r[y][i]=f[k(x)][k(y)][i]=0;
a[x][y]=0; //回溯
}
}
int main()
{
while (cin>>s)
{
if(s=="end")
return 0;
p=0;
memset(l,0,sizeof(l));
memset(r,0,sizeof(r));
memset(f,0,sizeof(f)); //清0
for (int i=1;i<=9;i++)
for (int j=1;j<=9;j++)
if (s[(i-1)*9+j-1]!='.')
{
a[i][j]=s[(i-1)*9+j-1]-48;
l[i][a[i][j]]=1;
r[j][a[i][j]]=1;
f[k(i)][k(j)][a[i][j]]=1;
}
else a[i][j]=0; //預處理
dfs(1,1);
}
return 0;
}
相關文章
- ybtoj 高效進階題解索引索引
- ybtoj高效進階題解索引索引
- 【YbtOJ高效進階 遞推-2】奇怪漢諾塔
- 給獨立遊戲製作人的進階建議遊戲
- ybtoj:深度優先搜尋
- ybtoj:廣度優先搜尋
- uniapp js 數獨小遊戲 寫死的簡單數獨 數獨 3.0APPJS遊戲
- 使用Xamarin開發移動應用示例——數獨遊戲(五)儲存遊戲進度遊戲
- 告別996?資深遊戲PM:遊戲專案開發的高效祕訣996遊戲
- 《ybtoj高效進階》第一部分第五章例題5 機器維修
- 日行一算(數獨遊戲)遊戲
- Steam獨自推動Linux遊戲前進Linux遊戲
- 安卓開發筆記——數獨遊戲安卓筆記遊戲
- 使用Xamarin開發移動應用示例——數獨遊戲(四)產生新遊戲演算法改進遊戲演算法
- 深搜dfs
- 2022遊戲出海日本市場進階指南遊戲
- 遊戲,墜入深淵遊戲
- 一款未完結的獨立遊戲卻有著深遠影響遊戲
- 你的Android資深工程師進階之路Android工程師
- 獨家!增長83%!廣深廠商入局!小遊戲最大增長點?遊戲
- 使用Xamarin開發移動應用示例——數獨遊戲(七)新增新遊戲遊戲
- 使用Xamarin開發移動應用示例——數獨遊戲(二)建立遊戲介面遊戲
- 《戀與深空》遊戲拆解遊戲
- 【深度學習】1.4深層神經網路深度學習神經網路
- 遊戲行業進入“嚴查版號”階段!遊戲行業
- 編碼的進階,檔案操作,深淺copy
- iPrice:PS 5遊戲釋出會獨佔《地平線2》谷歌搜尋量最高遊戲谷歌
- 如何高效利用 GitHub 關鍵字進行搜尋Github
- 遊戲策劃進階技能:如何輸出優秀的‘遊戲測評報告’遊戲
- 萬款獨立遊戲吐血篩選,爆款獨立遊戲彙總指南遊戲
- 遊戲論|獨立崛起:始自遊戲,終於精神遊戲
- 獨立遊戲的必然演進之路:希望-泡沫-過剩-絕望遊戲
- 獨立遊戲開發是如何讓我進退兩難的?遊戲開發
- steam獨立遊戲資料遊戲
- 楊超越“拯救”獨立遊戲?遊戲
- 從《霓虹深淵:無限》看“最暢銷獨立遊戲”是如何改編成熱門手遊的?遊戲
- Gamepedia for mac(遊戲搜尋工具)GAMMac遊戲
- 洛谷-P1036-選數(順便講講深搜)