Sudoku Killer--hdu1426(数独 跟上一题差不多 但是输入时问题)
2024-08-22 23:02:12
http://acm.hdu.edu.cn/showproblem.php?pid=1426
注意输入问题就行
还是dfs
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
#include<math.h>
#include<iostream> using namespace std; #define N 100
#define INF 0xffffffff
#define memset(a,b) memset(a,b,sizeof(a)) int a[N][N],v1[N][N],v2[N][N],v3[N][N];
int ok=,sum; struct node
{
int x,y;
} e[N]; void DFS(int p)
{
if(p>sum)
{
ok=;
return;
} for(int i=; i<=; i++)
{
if(!ok)
if(v1[e[p].x][i]== && v2[e[p].y][i]== && v3[(e[p].x/)*+e[p].y/+][i]==)
{
v1[e[p].x][i]=;
v2[e[p].y][i]=;
v3[e[p].x/*+e[p].y/+][i]=;
a[e[p].x][e[p].y]=i; DFS(p+); v1[e[p].x][i]=;
v2[e[p].y][i]=;
v3[e[p].x/*+e[p].y/+][i]=;
}
} } int main()
{
char str[];
int k=,flag=,b=;
sum=;
memset(a,);
memset(v1,);
memset(v2,);
memset(v3,);
while(scanf("%s",str)!=EOF)
{
if(str[]=='?')
{
a[k][b]=;
sum++;
e[sum].x=;
e[sum].y=;
b++;
}
else
{
a[][]=str[]-'';
v1[][a[][]]=;
v2[][a[][]]=;
v3[][a[][]]=;
}
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
if(i== && j==)
continue;
scanf("%s",str);
if(str[]=='?')
{
a[i][j]=;
sum++;
e[sum].x=i;
e[sum].y=j;
b++;
}
else
{
a[i][j]=str[]-'';
v1[i][a[i][j]]=;
v2[j][a[i][j]]=;
v3[i/*+j/+][a[i][j]]=;
}
}
}
DFS();
if(flag==)
printf("\n");
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
if(j==)
printf("%d",a[i][j]);
else
printf(" %d",a[i][j]);
}
printf("\n");
} flag=;
k=;
sum=;
ok=;
b=;
memset(a,);
memset(v1,);
memset(v2,);
memset(v3,); }
return ;
}
最新文章
- UNITY更新到5后设置的动画无法播放了怎么办
- MIT jos 6.828 Fall 2014 训练记录(lab 6)
- [转]不再以讹传讹,GET和POST的真正区别
- javascript判断上传文件大小
- MFC Socket
- Ueditor 1.4.3 jsp utf-8版图片上传问题
- ashx页面中context.Session[";xxx";]获取不到值的解决办法
- 解决mac下atom安装插件失败问题
- SpringMVC结合ajaxfileupload文件无刷新上传
- 在C#中初遇Socket - 2
- javaweb后台转码
- Copy List with Random Pointer(复杂链表复制)
- Nginx代理的几种模式
- NOIAC41 最短路(线性基)
- 开发框架DevExtreme发布v18.2.4|附下载
- 论述Android通过HttpURLConnection与HttpClient联网代理网关设置
- context、config
- extjs获取选中列表!
- Java实现对Mysql的图片存取操作
- js LINQ教程